Я пытаюсь использовать перегруженные методы в веб-службе, но получаю исключение System.InvalidOperationException при попытке добавить веб-ссылку в Visual Studio 2005 (вот соответствующие фрагменты кода):
public class FileService : System.Web.Services.WebService
{
private static readonly MetaData[] EmptyMetaData = new MetaData[0];
public FileService()
{
// a few innocent lines of constructor code here...
}
[WebMethod(MessageName = "UploadFileBasic",
Description = "Upload a file with no metadata properties")]
public string UploadFile(string trimURL
, byte[] incomingArray
, string fileName
, string TrimRecordTypeName)
{
return UploadFile(trimURL
, incomingArray
, fileName
, TrimRecordTypeName
, EmptyMetaData);
}
[WebMethod(MessageName = "UploadFile",
Description = "Upload a file with an array of metadata properties (Name/Value pairs)")]
public string UploadFile( string trimURL
, byte[] incomingArray
, string FileName
, string TrimRecordTypeName
, MetaData[] metaDataArray)
{
// body of UploadFile function here
Я думал, что предоставление другого свойства MessageName для атрибута WebMethod решит эту проблему, но вот полное сообщение об ошибке, которое я получаю:
Как System.String UploadFileBasic (System.String, Byte [], System.String, System.String), так и System.String UploadFile (System.String, Byte [], System.String, System.String) используют сообщение имя «UploadFileBasic». Используйте свойство MessageName пользовательского атрибута WebMethod, чтобы указать уникальные имена сообщений для методов.
Веб-сервис компилируется нормально; Я не вижу, что здесь не так.