排除 WCF DataContract 上的属性

2024-03-27

给定这样的 WCF 接口定义,是否有办法从 ComplexObject 响应值中排除属性?

我想排除 ChildObjects 属性。我不想从属性定义中删除 DataMember 属性,因为我需要在另一种情况下将其序列化。

[ServiceContract]
public interface IComplexObjectService
{
    [OperationContract]
    ComplexObject Test(int a);
}

ComplexObject 的定义如下:

[DataContract(IsReference = true)]
public class ComplexObject 
{
    [DataMember]
    public long ObjectCode
    {
        get { return _ObjectCode; }
        set { _ObjectCode = value; }
    }

    [DataMember]
    public List<ComplexObject> ChildObjects
    {
        get { return _ComplexObject; }
        set { _ComplexObject = value; }
    }
}

如果您不想公开 ComplexObject 中的 ChildObjects 属性,则必须删除 DataMember 属性。如果您有另一个需要 ChildObjects 的用例,那么我建议您有一个单独的 ComplextObject,它确实拥有它。您不能只在运行时打开或关闭它,因为这会违反合同定义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排除 WCF DataContract 上的属性 的相关文章

随机推荐