2009-07-01 9 views
3

WCFサービス(svcutil.exeで生成)が既に定義したものを使用するのではなく、独自のデータ型を生成するという問題が発生しました。例えばWCFサービスクライアントのsvcutil( "extra" clientside-datatype 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を得るのですかそう

(私はこれが必要とされる目的のために知っていない)svcutilサービスは新しいextensionDataフィールドを作成していることがわかり

1フィールドごとにオブジェクトをキャストしたい)

ありがとうございました!

答えて

4

次svcutil参照ルックアットを取ってください:

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

を特に/参照:あなたが探している正確に何であるべきスイッチを。

私はsvcutilサービスを使用すると、データを支援するため

これが生成されます(これは が必要とされているために、私は知らない ) 新しいextensionData-フィールドを作成していることがわかり契約バージョン管理。後でEmailTransactionRequestMsgに新しいプロパティを追加するが、そのプロパティが定義されていない古いアセンブリを使用しているクライアントがある場合、新しいサービスを使用できるようになり、ExtensionDataObjectには未知の(新しい)プロパティが含まれます。 http://msdn.microsoft.com/en-us/library/system.runtime.serialization.extensiondataobject.aspx

+0

こんにちは、 あまりにも私の最初の試みでしたが、私が参照している場合 感謝::/参照を:再びMSDNは、詳細をごsprovideすべき<サービスexeファイルへのパス>クライアントで生成された新しいクラスがまだあります。 私がIExtensibleDataObjectからクラスを派生したとしても、 – David

+0

ああ、参照を追加するとクライアントが生成されないことがわかります。 – David

+0

投稿にsvcutil呼び出しを追加してください。また、私の頭の上から、データ契約を再利用したい場合は、それらをすべて別のアセンブリに入れて、svc utilのものを参照してください。 –

関連する問題