1
私は現在、自動生成されたWebサービスクラスのディープコピーを作成するためにシリアル化を使用しています。これを行うためのよりクリーンな方法ですか?クラスは自動生成されるので、私はそれらに触れたくありません。詳細:自動生成されたWebServiceクラスを詳細にコピーするクリーナーの方法
(正常に動作します)私の現在、コードはこれです:
using (Stream stream = new MemoryStream()) //Copy IR
{
IFormatter IF = new BinaryFormatter();
IF.Serialize(stream, IR);
stream.Seek(0, SeekOrigin.Begin);
IR2 = (ObjectType)IF.Deserialize(stream);
}
コードが自動的に生成されたクラスをコピーするために使用されています。 soapリクエストにWeb参照を追加すると、Visual Studio 2005によって自動的にこのクラスが生成されます。クラスは次のようになります。
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3074")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace=/*"[WebServiceNameSpace]"*/)]
public partial class ObjectType {
private string AField;
private string BField;
//...
public string A {
get {
return this.AField;
}
set {
this.AField = value;
}
}
/// <remarks/>
public string B {
get {
return this.BField;
}
set {
this.BField = value;
}
}
//...
}
いいえ、私は解決しようとしている問題はありません。よりクリーンな方法があるかどうかを確認しようとしているだけです。私は特にそうではないことに驚くことではないが、私は尋ねると思った。 (私は、そのシリアライゼーションコードを別の汎用関数に移動するのは簡単だろうと思っていますが、それは何もよりクリーンではありません。) – Brian