WCF 服务中的类对于对象实例化不可见/不可用代理(Reference.cs 文件)

问题描述 投票:0回答:1

我在 .NET 解决方案中的 WCF 服务层中定义了 A 类,如下所示:

namespace Data
{
public class A
{
public int x {get; set;}
public B obj {get; set;}
}
}

B 类也定义在同一命名空间内。现在,类 A 不用作 WCF 服务接口中公开的契约/方法中任何方法的返回类型,而类 B 则用作某些方法的返回类型。我想使用类 A,因为它在解决方案的 Web MVC 层中,但是当我更新解决方案中 WCF 服务的服务引用时,只有类 B 可用,并且当我尝试启动类 A 的对象时,它不可用并抛出“无法找到名称空间名称的类型...”错误。请让我知道需要做什么才能使 A 类在代理中可见/可用

尝试删除 A 类并添加回来。未解决缺少参考构建错误。在带有 DataContract 属性/注释的接口中添加了类 A,但它在代理类中仍然不可见/不可用

c# .net class wcf wcf-proxy
1个回答
0
投票

我尝试了几种方法,得出的结论是,在WCF服务中,如果您希望客户端调用某个方法,则必须在该方法上使用OperationContract属性来标记它。未标记OperationContract属性的方法在生成代理类时不会包含在WCF客户端中。

由于您不在WCF服务器上使用该功能,因此不会传输到客户端。如果通过自定义向 Reference.cs 添加方法,则会破坏 WCF 的工作方式,这是我不推荐的做法。

[ServiceContract]
public interface IMyService
{
    [OperationContract]
    void B();

    // This method will not appear in Reference.cs if it doesn't have OperationContract
    void A(); 
}
© www.soinside.com 2019 - 2024. All rights reserved.