3

我遇到了问题,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 字段(我不知道这是出于什么目的)

那么,我如何让 svcutil 使用我自己的类(因为我不想按每个字段强制转换对象)

谢谢你们!

4

1 回答 1

4

请查看以下 svcutil 参考:

http://msdn.microsoft.com/en-us/library/aa347733.aspx

尤其是 /reference: 开关,它应该正是您正在寻找的。

我看到 svcutil 服务创建了一个新的 extensionData 字段(我不知道这是出于什么目的)

这是为您生成的,以帮助您进行数据合同版本控制。如果您稍后将新属性添加到 EmailTransactionRequestMsg,但有一个使用旧程序集但未定义该属性的客户端,它仍然能够使用新服务,并且 ExtensionDataObject 将包含未知(新)属性。MSDN 应该再次为您提供更多详细信息:http: //msdn.microsoft.com/en-us/library/system.runtime.serialization.extensiondataobject.aspx

于 2009-07-01T07:46:10.537 回答