c# - 如何使用重载方法访问 Web 服务

标签 c# web-services asmx

我试图在 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 属性为方法指定唯一的消息名称。

Web 服务编译正常;我看不出这里有什么问题。

最佳答案

我的建议是不要使用重载方法名。 WSDL 中没有这样的概念,何必呢?

关于c# - 如何使用重载方法访问 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160299/

相关文章:

java - Eclipse 中的 SOAP 消息不跟踪

c# - 继承现有的 .Net 类序列化错误

service - Soap FaultString 显示详细的错误消息而不是简短的错误

c# - 使用正则表达式或 JSON 提取数据

java - wsimport "Cannot resolve the name..."

java - 不支持的内容类型 : text/plain; charset=ISO-8859-1

c# - 我可以创建具有属性的 Web 服务吗?

c# - 统一: Flip 2D GameObject(Clone) while GetKeyDown

c# - MySql 服务器的 WPF 登录 GUI

c# - 使用 string.concat 还是 string builder 更好?