質問

私は私のサービスにオブジェクトのリストを渡す必要がある状況を持っています。オブジェクトは型要素である必要があります。私の要素インタフェースはso

のように定義されています
public interface IElement{ }
.

このようなこのiElementクラスを継承する私のデータコントラクトを持っています。。。。

[KnownType(typeof(Common.IElement))]
[DataContract]
public abstract class IPet : IElement
 {.....}
.

私はso

のような私のサービスインタフェースに既知の属性を持っています
[ServiceContract(Name="Pets", SessionMode = SessionMode.Allowed)]
[ServiceKnownType(typeof(Memberships.PetServiceUser))]
[ServiceKnownType(typeof(.Common.IElement))]
[DeliveryRequirements(RequireOrderedDelivery=true)] 
public interface IPetService {.....}
.

問題はクライアント側にあるため、IElementタイプはクライアント上のサービスタイプの逆シリアル化では利用できません。私がここで間違っているかもしれないこと、そして私がこれを修正することができるのですか?

なし

役に立ちましたか?

解決

私は100パーセントではありませんが、ここでやろうとしていることをすべて理解していますが、それは私に逆さまのようです。既知の属性を使用する通常の方法は、派生型で基本タイプを飾ることです。の行に沿ったもの:

[DataContract]
[KnownType(typeof(Pet))]
[KnownType(typeof(...
...
public class Element: IElement
{
....
.

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