我试图在一个 Web 服务中使用重载方法,但是当我尝试在 Visual Studio 2005 中进行“添加 Web 引用”时,出现了 System.InvalidOperationException 异常(以下是相关的代码片段):
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
我曾认为在WebMethod属性中提供不同的MessageName属性将解决这个问题,但是下面是我得到的完整错误信息:
方法System.String UploadFileBasic(System.String, Byte[], System.String, System.String) 和 System.String UploadFile(System.String, Byte[], System.String, System.String) 都使用消息名称“UploadFileBasic”。请使用WebMethod自定义属性的MessageName属性为方法指定唯一的消息名称。
网络服务编译没有问题;我看不出哪里出错了。