gpt4 book ai didi

c# - 我是否需要在 WCF DataContract 中公开一个构造函数,以便它在客户端的对象实例化期间工作?

转载 作者:太空狗 更新时间:2023-10-29 17:55:37 26 4
gpt4 key购买 nike

我在 WCF 服务中有一个类,我们称它为 AA 是一个数据协定,它包含另一个自定义对象 B 的集合作为其 DataMembers 之一。为了避免客户端出现空引用问题,我在构造函数中实例化了 BList,如下所示:

[DataContract]
public class A
{
[DataMember]
public String name { get; set; }
[DataMember]
public List<B> BList {get; set; }

public A()
{
BList = new List<B>();
}
}

我的问题是,在客户端上,这种实例化不会发生,并且 BList 在客户端上创建了一个 A 对象后显示为 null。我猜构造函数没有出现在客户端上。那么,我需要让构造函数成为一个显式的操作契约吗?如果是这样,那将使客户看到他们不应该看到的内部事物,对吗?我如何确保此实例化发生在客户端?

谢谢,如果这个问题看起来很愚蠢,我很抱歉。

最佳答案

您需要使用 [OnDeserializing] 或 [OnDeserialized] 属性来初始化 DataContract 类型。参见 http://msdn.microsoft.com/en-us/library/ms733734.aspx

关于c# - 我是否需要在 WCF DataContract 中公开一个构造函数,以便它在客户端的对象实例化期间工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com