Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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

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# 使用RequestHandler实现WCF_C#_Wcf - Fatal编程技术网

C# 使用RequestHandler实现WCF

C# 使用RequestHandler实现WCF,c#,wcf,C#,Wcf,我不熟悉WCF的概念。我在wcf示例中看到以下代码片段。其中使用请求处理程序实现服务 public class Service1 : IService1 { public readonly GetDataRequestHandler requesthandler; public GetDataResponse GetData(GetDataRequest request) { return this.requesthandler.Process(reque

我不熟悉WCF的概念。我在wcf示例中看到以下代码片段。其中使用请求处理程序实现服务

public class Service1 : IService1
{
    public readonly GetDataRequestHandler requesthandler;

    public GetDataResponse GetData(GetDataRequest request)
    {
       return this.requesthandler.Process(request);
    }
}

public class GetDataRequestHandler: RequestHandler<GetDataRequest, GetDataResponse>
{    
    private readonly GetDataImp _getdata;

    public GetDataRequestHandler(GetDataImp _getdata)
    {
        this._getdata = _getdata;
    }

    protected override GetDataResponse OnProcess(GetDataRequest request)
    {
        return _getdata.GetDataValue(request);
    }
}

public abstract class RequestHandler<TRequest, TResponse>
{
    public virtual TResponse Process(TRequest request)
    {
        return OnProcess(request);
    }

    protected abstract TResponse OnProcess(TRequest request);
}

public class GetDataImp
{
    public GetDataResponse GetDataValue(GetDataRequest request)
    {
        string a="ayan"+request.value;
        GetDataResponse rep = new GetDataResponse();
        rep.Data = a;
        return rep;
    }
}
但当我使用wcftestclient调用Service1时,我得到了null指针异常,例如WcfServiceLibrary1.dll中出现了类型为“System.NullReferenceException”的异常,但未在用户代码中处理

其他信息:对象引用未设置为对象的实例。在“returnthis.requesthandler.Processrequest”行中


任何人都可以用这种实现的新的完整示例来解释这个问题吗?

当客户端调用服务的GetData方法时,您得到的是NullRefEx?是的,我得到的是NullReference异常。如何实现逻辑以解决问题。requesthandler未实例化。。。。