0

DataContractをサービスに追加する方法を考えていましたか?つまり、クラスを作成し、その上に[DATACONTRACT]を配置してから、各メンバーの上に[DATAMEMBER]を追加する必要があることはわかっていますが、DataContractをサービスに追加する方法(すでに[ServiceContract]があります)および[OperationContract]がサービスで実行されている)??

現在、すべてをプログラムで実行しています(.configファイルはありません)。

OperationContractを起動して追加する方法を示すコードの一部:(.NET4.0を使用しています)

サービス側:

            using (ServiceHost host = new ServiceHost(typeof(StringReverser), new Uri[]{ new Uri("net.tcp://localhost") }))
            {

                   host.AddServiceEndpoint(typeof(IStringReverser), new NetTcpBinding(), "TCPReverse");

                   host.Open();
            }

クライアント側:

        Callbacks myCallbacks = new Callbacks();

        DuplexChannelFactory<IStringReverser> TCPFactory =
           new DuplexChannelFactory<IStringReverser>(
              myCallbacks,
              new NetTcpBinding());

        TCPFactory.Credentials.Windows.ClientCredential = new System.Net.NetworkCredential("username", "password");
        IStringReverser TCPProxy = TCPFactory.CreateChannel();

        Console.WriteLine("Client connected");

前もって感謝します

4

2 に答える 2

0

どこにもデータ コントラクトを「追加」する必要はありません。サービス コントラクトまたはコールバック コントラクトの操作のパラメーターまたは戻り値として使用するだけです。データ コントラクトは、サービス要求または応答の一部として転送されるデータを定義します。データ コントラクトがサービスの操作で使用されない場合、明らかにサービスとは関係ありません (メタデータの場合は含まれません)。

唯一の例外は、既知のタイプを使用するいくつかの高度なシナリオですが、おそらくこの質問には当てはまりません。

于 2011-05-24T13:47:04.397 に答える
0

DataContracts は、サービスの操作に渡されるものです。通常、複雑な型をパラメーターとして使用する場合は、それらを DataContract 属性で装飾します。

パラメータとしてプリミティブ型のみを扱う場合、DataContract で装飾するものは何もありません。

于 2011-05-24T13:50:18.987 に答える