如何创建一个接受不同参数类型的通用函数

堆栈溢出

考虑下面的代码:

var list = new SomeServiceType
{
    Url = "htp://www.test.com/",
    Credentials = new NetworkCredential(UserName, Password)
};

这段代码已被重复多次,说了10次。因此,我决定使用一个通用函数,该函数在传递不同类型时会接受上述代码。

我需要获取UrlCredentials作为新创建函数的响应。

作为参考,SomeServiceType为ServiceNowType,UserName和Password为String。

我尝试过

public List<object>(....strucked here...)
{
  ...
  return ...//again strucked here....(neeed to return url and credentials)..
}

url为字符串类型,NetworkCredential为c#类

阿努布里耶·钱德拉(Anubrij chandra)

您可以使用反射和激活器创建方法,如下所示

 public T MyMethod<T>(string url, string userName, string userPassword) {
       var myService = Activator.CreateInstance(typeof(T));
      System.Reflection.PropertyInfo URL = myService.GetType().GetProperty("Url");
      System.Reflection.PropertyInfo NetworkCred = myService.GetType().GetProperty("Credentials");
      URL.SetValue(myService, url, null);
      NetworkCred.SetValue(myService, new System.Net.NetworkCredential(userName, userPassword), null);
      return (T)myService;
   }

呼叫为

var list =  MyMethod<SomeServiceType>(url,userName,userPassword);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在PostgreSQL中,如何声明一个接受不同类型参数的可变参数函数?

如何声明一个泛型函数,该函数返回一个具有相同参数但其参数返回类型不同的函数(反应钩子)

Ruby - 如何编写一个接受具有不同参数数量的过程的方法?

在 Rust 中,如何创建一个接受“标记组件”作为类型参数的函数?

创建一个根据继承者采用不同参数的抽象函数

如何创建一个接受单个数组下的两个不同接口的通用接口或类型?

实现一个接受两个不同类的参数的通用函数?

如何调整一个类以接收来自各种函数的不同参数?

从C ++ 17中的另一个构造函数调用具有不同参数类型的构造函数

是否可以创建一个可以接受 UIView 或 UIButton 作为参数的通用函数?

如何在 C++ 中定义接受不同参数类型的函数向量?

如何创建可应用于包含相同参数的两个一个或多个类型的泛型函数?

如何创建一个接受带有特定参数作为参数的函数的函数?

创建一个接受类型对象的通用方法并返回一个新的类型对象

如何创建一个函数来接受参数并在调用时增加参数?

如何创建一个最多接受4个参数的构造函数?

创建一个接受参数并传递变量的函数

如何编写一个scala函数来接受两种类型的参数?

如何声明一个接受类型化数组参数的函数

创建一个接受对象但不接受数组的通用函数

如何使用指定的向量类型创建一个接受值向量的模板函数?

如何使用一个通用构造函数参数注册/解析类型

创建一个接受另一个函数作为参数的函数

强制转换列表类型,以便一个函数可以接受更通用的列表类型

如何采用任何构造函数类型并将其转换为接受相同参数的函数类型?

创建一个函数,用于连接存储在通用列表中的不同类型的两个 Dataflow 节点

如何创建一个可以从具有不同参数的不同组件调用的公共角度ng2-charts(条形图)组件

如何创建一个接受输入参数的任务

您如何使一个函数接受多种类型?