我在 .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,但它在代理类中仍然不可见/不可用
我尝试了几种方法,得出的结论是,在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();
}