Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF服务方法重载问题-需要帮助_C#_Wcf_.net 3.5_.net Framework Version - Fatal编程技术网

C# WCF服务方法重载问题-需要帮助

C# WCF服务方法重载问题-需要帮助,c#,wcf,.net-3.5,.net-framework-version,C#,Wcf,.net 3.5,.net Framework Version,我有一个WCF web服务方法(通过3.5NetFramework),需要对其进行重构以使用可选的输入参数。Mi调查得出结论,可选参数是4.0中引入的一个概念,因此我需要做一些变通来解决我的问题。我的代码更新如下所示: partial class Class1: IService { public int MethodName ( int param1, string param2 ) { // code here } public int

我有一个WCF web服务方法(通过3.5NetFramework),需要对其进行重构以使用可选的输入参数。Mi调查得出结论,可选参数是4.0中引入的一个概念,因此我需要做一些变通来解决我的问题。我的代码更新如下所示:

partial class Class1: IService {

    public int MethodName ( int param1, string param2 )
    {
         // code here
    }

    public int MethodName ( int param1)
    {
         // code here
         string param2 = FillInInternally();
         return this.MethodName(param1, param2);
    }
我还更新了我的运营合同:

[ServiceContract]
public interface IService
{
    [OperationContract(Name = "Alias1")]
    int MethoName(int param1, string param2);

    [OperationContract(Name = "Alias2")]
    int MethoName(int param1);

}

public partial class ServiceClient : ClientBase <IService>, IService
{

    public int MethoName(int param1, string param2)
    {
       return Channel.MethodName(param1, param2);
    }

    public int MethoName(int param1)
    {
       return Channel.MethodName(param1);
    }
}
[服务合同]
公共接口设备
{
[运营合同(Name=“Alias1”)]
int-methodName(int-param1,string-param2);
[运营合同(Name=“Alias2”)]
int方法名(int参数1);
}
公共部分类ServiceClient:ClientBase,iSeries设备
{
公共int-methodName(int-param1,string-param2)
{
返回Channel.MethodName(param1,param2);
}
公共整数名称(整数参数1)
{
返回Channel.MethodName(param1);
}
}
经过解释,我能够正确地构建Web服务。除此之外,集成测试也运行得很好。在那之后,我需要在服务器上安装,并且在尝试测试WSDL时,我遇到了一个问题,表明svc文件第1列第1行有错误(请注意,我没有包括确切的错误消息,因为我将WS回滚到了以前的版本,以避免周末出现产品问题)

我的问题是:有人认为我在发展中遗漏了什么吗?或者,当“安装”问题得到解决时,我是否能够正确地重载我的WCF服务方法

欢迎提出任何意见

谢谢

.NET Framework 3.5 VisualStudio2008标准版
C#

是否手动构建
ServiceClient
类?我建议您使用svcuti.exe工具生成代理,不要鼓励自己直接在生成的代理代码中进行修改

如果您通过工具或VS add service引用生成了代理,您应该会看到
IService
,而
ServiceClient
应该是这样的

[ServiceContract]
public interface IService
{
    int Alias1(int param1, string param2);

    int Alias2(int param1);
}

public partial class ServiceClient : ClientBase <IService>, IService
{
    // other stuff
    public int Alias1(int param1, string param2)
    {
       return base.Channel.Alias1(param1, param2);
    }

    public int Alias2(int param1)
    {
       return base.Channel.Alias2(param1);
    }
}
[服务合同]
公共接口设备
{
int-Alias1(int-param1,string-param2);
int-Alias2(int-param1);
}
公共部分类ServiceClient:ClientBase,iSeries设备
{
//其他东西
公共整数别名1(整数参数1,字符串参数2)
{
返回base.Channel.Alias1(param1,param2);
}
公共整数别名2(整数参数1)
{
返回base.Channel.Alias2(param1);
}
}

请注意,您的客户机的方法有
Alias1
Alias2
而不是
MethodName
。请确保您有合适的代理人与服务部门交谈。

您的服务合同似乎没有任何问题,但如果没有实际错误,则很难判断。产生错误的原因是什么——添加服务引用、浏览WSDL或调用方法?您提到错误消息指向.svc文件col 1第1行;但是您的问题中没有包含.svc文件的内容。除此之外,您显示的代码看起来是正确的。