私は継承を使用するいくつかのオブジェクトクラスを持っています。私はサービスで直接使用されているオブジェクトにしかアクセスできないようです。私は私が達成しようとしているものをお見せしましょう:WCFサービスによって直接使用されないオブジェクト(DataContracts)を公開しますか?
[DataContract]
public class Object1
{
[DataMember]
int Id {get; set;}
}
[DataContract]
public class object2: Object1
{
[DataMember]
string Name {get; set;}
}
[DataContract]
public class object3
{
[DataMember]
int SomeNumber {get; set;}
}
サービス:
public int GetId(object2 obj)
{
return GetTheId(object2.Name);
}
を今、私はサービスにobject2は使用しておりますので、オブジェクト1があまりにもシリアライズされます。 Howerver、私は何らかの理由でobject3を露出させたいかもしれません。それは、その型が後で別のプロセスのために決定されるように渡さなければならない派生クラスかもしれません。私はこのオブジェクトがシリアル化されて表示されません。私はあなたがDataContract/DataMemberを設定するたびに、それらのオブジェクトがシリアル化されると仮定しました。あなたが必要としないかもしれないアイテムを公開する問題を見ることができるので、使用されていないものを公開しないことは理にかなっています。サービスによって直接使用されないオブジェクトを公開する最良の方法は何ですか?ありがとう
ダニエル
私はその属性を完全に忘れていました!!!ありがとう。それが私の状況に必要なものです。ありがとう!!!!! – DDiVita
サービス契約を[ServiceKnownType]で飾ることもできます。 :) –