[DataContract]
public abstract class FooBase
{
[DataMember]
public int Bar { get; set; }
}
。ここで私はサービス参照...(MyServiceで)を追加]を選択しますPROJ1にかかわらず、問題...WCF - 元のコードをコピー/貼り付けしたり、共有抽象クラスの自動生成コードでDataContractを使用しますか?私もDataContractsている他のクラスの基本クラスとして使用し、基本クラスである
だとそれがFooBaseコードを含め、私のためのコードを生成します。 Proj2では、[サービス参照の追加...(OtherService)]を選択しますが、これも同じです。
しかし、私は両方のプロジェクトを参照することができ、それ自身のアセンブリにあるようにFooの基本クラスをしたい...ので、それはした方がよい:
コピー/それとして、他の共有アセンブリにFooBaseクラスを貼り付けますありますか?
[DataContract]
public abstract class FooBase
{
[DataMember]
public int Bar { get; set; }
}
あるいは、コピー/他の共有アセンブリにFooBaseクラス用に生成されたコードを貼り付け?
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="FooBase", Namespace="http://schemas.datacontract.org/2004/07/MyNamespace")]
[System.SerializableAttribute()]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(MyNamespace.Proj1.TypeA))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(MyNamespace.Proj1.TypeB))]
public partial class FooBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private int BarField;
[global::System.ComponentModel.BrowsableAttribute(false)]
public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
get {
return this.extensionDataField;
}
set {
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
public int Bar {
get {
return this.BarField;
}
set {
if ((this.BarField.Equals(value) != true)) {
this.BarField = value;
this.RaisePropertyChanged("Bar");
}
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
まあはい、私は知っています。自動生成されたコードまたはサーバー上にある同じコードを使用する方が良いかどうかを確認していますか?基本的に、コード1またはコード2?私は自分の質問で、共有ライブラリに/またはそのどちらかを入れると述べました。ちょうど...私はどのような質問をしますか? –
純粋な.Netソリューションの場合は、共有ライブラリを使用してください。 –
ご迷惑をおかけして申し訳ありません。私の好みは、共有ライブラリ内の生成されていないコード、つまりデータ契約だけのコードを使用することです。 –