2009-07-01 120 views
3

我得到了问题,WCF服务(用svcutil.exe生成)生成它自己的数据类型,而不是使用我已经定义的。WCF服务客户端与svcutil(没有“额外”客户端数据类型def。)

例如:

的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工具使用我自己的类(因为我不t想要通过每个单独的字段投出对象)

谢谢大家!

回答

4

请大家LOOKAT以下SvcUtil工具参考:

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

尤其是/参考:开关,它应该是你在寻找什么。

我看到SvcUtil工具服务创建 新extensionData场(我 不知道为了这个目的,这是需要 )

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

+0

嗨, 谢谢,这是我第一次尝试过,但如果我引用:/参考:<路径服务exe文件>还有在客户端生成一个新的类。 即使我从IExtensibleDataObject .. – David 2009-07-01 08:23:54