XMLserializerメソッドを介してXMLデータにシリアル化される3つのクラスがあります。コードに3つのxmlserializeメソッドを含めるのではなく、すべての人がメソッドにアクセスできるようにする方法はありますか?
//Here I'm writing to my class with the data that needs to be serialized
PERSON r = new PERSON();
Input l = new Search.Input();
INPUTSEARCHNBR ln = new INPUTSEARCHNBR();
ln.number = pnumber;
r.query = ln;
string xml = doSerialization(r);
//Call the xmlserializer method
private static string doSerialization(PERSON r)
{
string serializedValue = string.Empty;
try
{
XmlSerializer xmlSerializer = new XmlSerializer(r.GetType());
using (MemoryStream ms = new MemoryStream())
{
xmlSerializer.Serialize(ms, r);
ms.Position = 0;
var sr = new StreamReader(ms);
serializedValue = sr.ReadToEnd();
}
serializedVal = serializedValue.Replace("version=\"0\"", string.Empty).Replace("<?xml version=\"1.0\"?>", string.Empty).Replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", string.Empty);
}
return serializedVal;
}
私のコードは、2つの異なるクラスに対してこれをさらに2回繰り返し、クラスに書き込み、メソッドの入力が異なるクラスタイプであるため、別のxmlserializeメソッドを呼び出します。メソッドをパブリックにする方法、クラスとして持つ方法、またはその他の方法で、まったく同じであるが入力クラスが異なる2つの追加のxmlserializeメソッドを貼り付ける必要がないようにする方法はありますか?