質問

い複雑なデータ型を含む、多数の機能だけでなく、通常の取得および取得します。私の人生が容易だが、WCFいたお客様の使用もできますこのデータ型になります。

  1. 無視すべての業務を [DataMemeber] みが必要です。

  2. Putクラスの問題となる共有ライブラリの組立のためのクライアントとサーバの両方へのアクセス。

おかげさ Roberto

PS.私はこの問題はどのように変動するというもばしんできました。

役に立ちましたか?

解決 2

Okですることを組み合わせて、上記の応答となります。

  1. 棒のデータのクラス共通組み立て参照されているから、クライアントとサーバープロジェクト.
  2. があることを確認してください"使用再開の種類、参照されるアセンブリ"の項目の確認"に設定サービスの参照"ダイアログを表示します。
  3. 始それぞれのデータ契約け[KnownType]の属性。

次のようなコードになりう:

[DataContract]
[KnownType(typeof(WHS2SmugmugShared.Photo))]
[KnownType(typeof(WHS2SmugmugShared.PhotoInfo))]
public class Photo
{
//code here
}

上記の場合、利用PhotoInfoの写真のクラスです。PhotoInfoいませんのでKnownTypeに関連付けられた属性で、クラスファイルです。ものではありませんが必要です。

ことができserialize複雑な種類もいます。

他のヒント

すべての譲渡にWCF境界は直列化される金額には、クラスの状態です。になります。だって利用可能な双方は、必要な共有ライブラリとして提案する.

追加された場合はサービスを参照するオプションの再利用のデータ型になり、その場合、WCFまで直列化復元の共通クラスを完備した。そのフィールドの値を、実際の譲渡の境界線。

最良の実践のためのデータ-契約での契約データのみのない行為です。第二に実践するまを飾るためのクラス[DataMember]、とくにサーバのクライアントが使用のプロキシコピーします。

答え:そうです。WCF取り扱う複雑な種類のようにチャンプ.ただ複雑な形をしていましたかのデータを渡されます。場合にクライアントに共有するものではありませんのDLLとなりますます重要なだけのデータが渡されな追加の作業が、顧客はただちにコピーし、複雑なタイプのデータを会員とする。

私は推測すからJavaです。とWCFが必要となりますのいずれかの分野DataMember属性は良い)の変更の取得/設定方法です。

例えば、代わりに:

[DataContract]
public class Foo
{
   [DataMember]
   private string bar;

   public string GetBar()
   {
      return bar;
   }

   public void SetBar(string b)
   {
      bar = b;
   }
}

を使用できるの

[DataContract]
public class Foo
{
   [DataMember]
   public string Bar { get; set; }
}

飾るすべての種類の直列化可能でない属性。そんな[DataContract]属性毎に複雑なクラスに参加ごWCFサービスです。

追加のdllを含むthoes種類で、WCFトして再利用プロキシクラスの代わりに再生で必要とされているもののためのdeserilization.した場合は、種類が追加されintoproxyを消したりすることができ、利用dll.こうして簡単に共有マの複雑な種類挟ます。その場合のみ対象ですshraeご種別dll.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top