获取Func <T>请求方法C#中的参数

我有两个具有某些通用功能的功能(即与服务建立连接并在调用后关闭连接)。我在其中创建了一个带有Func参数的名为“ InvokeService”的方法。如何在InvokeService中获取请求的参数?我的意思是我需要获取请求的对象值吗?您可以通过下面给出的演示代码来清除内容:

public void Method1(){
    InvokeService(()=> _service.getMathod1(request);
 }
 public void Method2(){
    InvokeService(()=> _service.getMathod2(request);
 }
 public void InvokeService(Func<T> request){
     //service open
     //I need here a complete object of the request of Method2 and its parameters
    request.Invoke();
    //service close
 }

如果有任何歧义或无法理解的地方,请随时问我。

lcmoba72 回答:获取Func <T>请求方法C#中的参数

您可能要使用template method模式:

  

定义操作中算法的框架,将某些步骤推迟到子类。模板方法使子类可以重新定义算法的某些步骤,而无需更改算法的结构。

在您的情况下,您可以使用以下内容:

    public abstract class AbstractClass
    {
        protected abstract void PrimitiveOperation();

        public void TemplateMethod()
        {
            // before common functionality

            PrimitiveOperation();

            // after common functionality
        }
    }

    class ConcreteClassA : AbstractClass
    {
        protected override void PrimitiveOperation()
        {
            // your A logic
        }
    }

    class ConcreteClassB : AbstractClass
    {
        protected override void PrimitiveOperation()
        {
            // your B logic
        }
    }

如果要为每个具体类返回不同的内容或根据具体类返回不同的参数,则可以使用泛型来实现。让我知道是否是这种情况。

,

可以通过反射来解决; request.GetMethodInfo()

本文链接:https://www.f2er.com/3073101.html

大家都在问