带有svcutil的WCF服务客户端(没有“额外”的clientside-datatype def。)

时间:2009-07-01 07:41:29

标签: wcf web-services client svcutil.exe

我遇到了问题,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使用我自己的类(因为我不想按每个字段强制转换对象)

谢谢大家!

1 个答案:

答案 0 :(得分:4)

请查看以下svcutil参考:

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

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

  

我看到svcutil服务创建了   一个新的extensionData-field(我   不知道这是为了什么目的   要求)

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