class MyCommonClass
{
//properties
}
此类应该可以在
中访问我认为,我无法在MyCommonClass
中生成ServiceReferences
但是如何将类标记为不可序列化?在属性中有IgnoreDataMemberAttribute
。我还尝试重用位于常见项目中的MyCommonClass类型,但它仍然生成
更新
换句话说:如果在ServiceOperation中使用某种类型,它会自动生成到wsdl文档中。如何禁用它? (我不希望它在wcf-client端)
答案 0 :(得分:0)
目前尚不清楚公共类是否需要部分WCF服务合同,因此可以通过WSDL文档使任何客户端可用,或者如果您正在尝试使WCF服务和WCF客户端都可以访问公共类作为标准的.NET类。
在服务和客户端之间共享标准.NET类的唯一原因是提供对共享逻辑的访问。否则,只需使用DataContract
或Serializable
标记该类,以使服务通过WSDL将类公开给客户端。请记住,其中一个four tenets of SOA是共享类型(WSDL)而不是类(.NET程序集)。
根据更新的问题,您可以通过强制WCF使用XmlSerializer
而不是默认DataContractSerializer
来更好地控制WCF序列化为soap XML的内容。此外,您可能希望将域模型对象与WCF服务公开的对象分离,如this SO question and answers中所述。这个excellent blog post解释了两个序列化器之间的差异以及如何强制WCF使用XmlSerializer
。