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-field を作成していることがわかります (これが必要な目的はわかりません)。

では、svcutil に独自のクラスを使用させるにはどうすればよいですか (すべてのフィールドでオブジェクトをキャストしたくないため)

皆さん、ありがとうございました!

4

1 に答える 1

4

次の svcutil リファレンスを参照してください。

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

特に /reference: スイッチはまさにあなたが探しているものです。

svcutil サービスが新しい extensionData-field を作成していることがわかります (これが必要な目的はわかりません)。

これは、データ コントラクトのバージョン管理に役立つように生成されます。後で新しいプロパティを EmailTransactionRequestMsg に追加しても、そのプロパティが定義されていない古いアセンブリを使用しているクライアントがある場合、新しいサービスを引き続き使用でき、ExtensionDataObject には不明な (新しい) プロパティが含まれます。繰り返しますが、MSDN は詳細を提供するはずです: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.extensiondataobject.aspx

于 2009-07-01T07:46:10.537 に答える