私はwcf webserviceで作業しています。このサービスは、サービス参照として追加したサードパーティ製のWebサービスを使用します。 ここでは、独自のクラスを定義してマッピングを行うことなく、このproxyクライアントの一部のプロパティをwcfserviceを使用するクライアントに公開したいと考えています。自動生成されたプロキシプロパティで[DataMember]を設定する方法
自動生成コードは部分クラスとして行われます。
public partial class Person : object,
System.ComponentModel.INotifyPropertyChanged
{
public string FirstName;
public string LastName;
...
}
これらのプロパティは、MetadataType-Attributeを使用し、プロパティに[DataMember] -Attributeを追加することでオーバーライドしようとしました。しかし、この継ぎ目はEFのためだけに働く。
[DataContract]
[MetadataType(typeof(PersonMetaData))]
public partial class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
public class PersonMetaData
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
インターフェイスを実装しようとすると、クライアントでプロパティが表示されませんでした。
[DataContract]
public partial class Person : IPerson
{}
public interface IPerson
{
[DataMember]
string FirstName { get; set; }
[DataMember]
string LastName { get; set; }
}
私のサービスのXmlSerializerで
グイド
コードが自動生成される場合は、何かする必要がありますか?一部の部分クラスを使用しているので、いつでもインターフェースを実装し、インターフェースに[DataMember]属性を定義することができます。次に、そのインタフェースを部分クラスに適用します。 – TravisWhidden
インターフェイスの実装が機能しませんでした。消費するクライアントでは、プロパティは表示されません。 –