Web サービス用に以下のコードを最適化する方法を見つけようとしています。
私の Web サービスでは、10 個の異なる XML ファイルを受け取ります。各 xml ファイルは常に同じ形式です。現時点では、それぞれを処理する 10 個の異なるメソッドがあります。以下のコードは、メソッドの 1 つの例です。
メソッド間の唯一の違いは、ローカル変数とノード属性です。
ほぼ同じ10個のメソッドを持つ代わりに、1つだけにしたいと思います。
これを達成するための最良の方法について誰かアドバイスできますか?
public void NavigateXmlSessionData(XPathNavigator xPathNav)
{
xPathNav.MoveToRoot();
xPathNav.MoveToFirstChild();
xPathNav.MoveToFirstChild();
string description, personId;
// initalise vars
description = "";
personId = "";
do
{
//display the child nodes
if (xPathNav.MoveToFirstChild())
{
while (xPathNav.MoveToNext())
{
switch (xPathNav.Name)
{
#region NodeAttributes
case "Description":
{
StringBuilder strBuild = new StringBuilder(xPathNav.Value, 200);
description = strBuild.Replace('\'', ' ').ToString();
break;
}
case "PersonId":
{
StringBuilder strBuild = new StringBuilder(xPathNav.Value, 200);
personId = strBuild.Replace('\'', ' ').ToString();
break;
}
#endregion
}
}
//move back to the parent
xPathNav.MoveToParent();
}
ProcessRecord();
// initalise vars
description = "";
personId = "";
} while (xPathNav.MoveToNext());
}