Каков наилучший способ поддержки необязательных данных, передаваемых в функцию C #?
У меня есть функция веб-службы в .Net, которая определяет 5 аргументов:
[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 аргумента (то есть, не массив «Метаданные» в качестве последнего аргумента), поэтому я клонировал всю функцию и удалил блок IF-ELSE, ссылающийся на метаданные. Гадкий я знаю.
[WebMethod]
public string UploadFileBasic( string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName)
Теперь я хочу сделать что-то лучше и ищу советы о том, как лучше всего это поддержать. Я не хочу обременять клиентскую программу созданием пустого массива в качестве 5-го параметра ... Я хочу, чтобы функции моего веб-сервиса были достаточно умными для обработки этих необязательных данных. Благодарю.