2012-02-14 15 views
1

MyCredentialsという名前の自分のビジネスオブジェクトに継承してカスタマイズしたCredentialsというDataContractがあります。私はそれを電信で送信したいが、間違いなくエラーが出る。WCFでDataContractを継承

パラメータ

をシリアル化しようとすると、ビジネス・オブジェクトとDataContracts間の変換を行うことなく、これを解決する方法はあります中にエラーが発生しましたか?私のコードの動作は次のようになります

[DataContract] 
[KnownType(typeof(Credentials))] 
internal class MyCredentials : Credentials 
{ 
    public MyCredentials() 
    { 
    } 
} 

答えて

3

KnownType属性でベースクラスのCredientialsを装飾する必要があります。

[DataContract] 
[KnownType(typeof(MyCredentials))] 
publice class Credentials 
{ 
    public Credentials() 
    { 
    } 
} 

また、私はあなたがDataContractAttributeとそれを飾るときに、クラスがパブリックおよび内部ないようにする必要がありだと思います。

[DataContract] 
public class MyCredentials : Credentials { 
    public MyCredentials() { 
    } 
} 
0

アクセシビリティ修飾子は、契約後もデータコントラクトには影響しません。