C#関数に渡されるオプションのデータをサポートする最良の方法は何ですか?
.Netに5つの引数を定義するWebサービス関数があります。
[WebMethod]
public string UploadFile( string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName
, MetaData[] metaDataArray)
この関数のコードは長すぎず(ただし、些細なことでもありません)、処理するMetaData []がある場合、このテストを実行する関数内の場所は1つだけです。
if (metaDataArray.Length > 0)
{
Update update = BuildMetaData(metaDataArray);
treq2.Items = new Operation[] { sru, cin, update, fetch};
}
else
{
treq2.Items = new Operation[] { sru, cin, fetch};
}
上記の迅速で汚いバージョンが必要でしたが、これは4つの引数しか取りません(つまり、最後の引数として「Metadata」配列はありません)。そのため、関数全体のクローンを作成し、メタデータを参照するIF-ELSEブロックを削除しました。醜い私は知っています。
[WebMethod]
public string UploadFileBasic( string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName)
今、私は物事をより良くしたいと思っており、これをサポートするための最良の方法についてのアドバイスを探しています。5番目のパラメーターとして空の配列を作成することでクライアントプログラムに負担をかけたくありません...このオプションのデータを処理するのに十分スマートなWebサービス関数が必要です。ありがとう。