C# WCF公开继承的类
当我使用这个WCF服务类时,为什么继承的类没有公开C# WCF公开继承的类,c#,wcf,.net-4.0,C#,Wcf,.net 4.0,当我使用这个WCF服务类时,为什么继承的类没有公开 [ServiceContract] public interface IMyService { [OperationContract] void DoSomething(); } [DataContract] public abstract class InheritMe { [DataMember] public int ExposeMe { get; set; } } public class MyService : I
[ServiceContract]
public interface IMyService
{
[OperationContract] void DoSomething();
}
[DataContract]
public abstract class InheritMe
{
[DataMember] public int ExposeMe { get; set; }
}
public class MyService : InheritMe, IMyService
{
public void DoSomething() { }
}
我的代码是在Visual Studio 2010 Pro中构建的框架4中的C#
请帮助,提前感谢。
ExposeMe
不属于服务合同的一部分。如果您希望能够在客户端应用程序中调用它,那么您必须在合同界面IMyService
中定义它
让您的服务类(MyService
)继承自DataContract
,这有点奇怪。这是没有用的DataContact
类是可以与客户端通信的类(例如,通过从服务操作返回它们)。
MyService
类只是您的服务合同的实现-它对客户端不可见。您所说的不公开到底是什么意思?在客户端应用程序中,ExposeMe DataMember未公开。为什么要将服务类设为数据协定?InheritMe类中有一些方法在我的实际代码中使用ExposeMe属性。谢谢,我会试试你的建议。它很有效,但不幸的是,我记得MySqlCommand.MySqlTransaction是不可序列化的。哈哈。再次感谢。