如何通过 WCF 获取类的重载构造函数

本文关键字:重载 构造函数 获取 何通过 WCF | 更新日期: 2023-09-27 17:55:28

如何将类上的重载构造函数传递给 WCF 客户端/使用者?

基本上,WCF 认为我的 B 类只有默认值,没有参数/空构造函数。如何使客户端能够调用重载的构造函数?

public class A
{
    public string MyField { get; set; }
}
public class B : A
{
    public List<C> MyList { get; set; }
    // when called on the WCF client side, MyList is null (so this constructor is not being called)
    public B()
    {
        MyList = new List<C>();
    }
    // not available on WCF client side
    public B(A a) : this()
    {
        base.MyField = a.MyField;
    }
    // not available on WCF client side
    public void DoSomething()
    {
        // do stuff
    }
}

如何通过 WCF 获取类的重载构造函数

构造函数是 wcf 客户端不知道的仅类构造。边界是不同的。

客户端只知道代理类。WCF 基础结构使用默认构造函数创建代理类。独立于服务器端的构造函数,因为它们从 WCF 的角度来看没有任何意义。

只有服务合同、操作协议和数据合同才重要。

如果需要代理类中的其他功能,则始终可以在客户端添加具有相同名称的分部类,并向其添加代码。(重载构造函数等)请注意,服务器并不真正关心这一点。