C#関数に渡されるオプションのデータをサポートする最適な方法は何ですか?C#webmethodのオプション引数の最適な作成方法
私は5つの引数を定義して.NETでのWebサービス機能があります。この関数のコードは(どちらかが、簡単ではありません)が長すぎるものではなく、唯一の場所はどこ機能であり
[WebMethod]
public string UploadFile(string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName
, MetaData[] metaDataArray)
を任意のメタデータ[]処理すべきである場合、私は、このテストを実行します。
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つの引数をとる上方の迅速かつダーティバージョンを必要としそう私は関数全体をクローン化し、met-1を参照するIF-ELSEブロックを削除しましたアダータ。醜い私は知っている。
[WebMethod]
public string UploadFileBasic(string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName)
今、私はより良いことをしたいと思いますし、これをサポートする最善の方法についてアドバイスを探しています。空の配列を5番目のパラメータとして作成することでクライアントプログラムに負担をかけたくない...このオプションのデータを処理するのに十分なスマートなWebサービス機能を持たせたい。ありがとう。
+1私の答えが自分の既存のコードに巧みにフィットしていたにもかかわらず、これは私が自分のコードで使う方法です。 –
ありがとうございました。あなたの役に立つ答えから新しい方法で関数のオーバーロードの優雅さがわかります。 –
このアプローチに従うと、新しい問題が発生しました。 http://stackoverflow.com/questions/1160299/how-to-access-a-web-service-with-overload-methods –