我遇到了问题,WCF服务(使用svcutil.exe生成)生成了自己的数据类型,而不是使用我已定义的数据类型。
例如:
svcutil产生了这样的东西:
public partial class EmailTransactionRequestMsg : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private int bit_to_setField;
private string country_db_identifierField;
.
.
}
当我真正希望它使用该类已经存在时:
[DataContract(Namespace = "Ps.App.Mailing.MsgQueue.MsgInterfaces")]
public class EmailTransactionRequestMsg
{
[DataMember]
public string country_db_identifier;
[DataMember]
public int bit_to_set;
}
我看到svcutil服务创建了一个新的extensionData-field(我不知道这是否需要这个目的)
那么,我如何让svcutil使用我自己的类(因为我不想按每个字段强制转换对象)
谢谢大家!
答案 0 :(得分:4)
请查看以下svcutil参考:
http://msdn.microsoft.com/en-us/library/aa347733.aspx
尤其是/ reference:开关应该正是您正在寻找的。 p>
我看到svcutil服务创建了 一个新的extensionData-field(我 不知道这是为了什么目的 要求)
这是为了帮助您进行数据合同版本控制而生成的。如果稍后向EmailTransactionRequestMsg添加新属性,但是如果客户端使用的旧程序集未定义该属性,则它仍然可以使用新服务,而ExtensionDataObject将包含未知(新)属性(ies)。 MSDN应该再向您提供更多详细信息:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.extensiondataobject.aspx