如何创建一个通用的函数接受不同的参数类型
考虑下面的代码:如何创建一个通用的函数接受不同的参数类型
var list = new SomeServiceType
{
Url = "htp://www.test.com/",
Credentials = new NetworkCredential(UserName, Password)
};
此代码已经重复很多人说的10倍。所以,我决定在通过不同类型时使用一个通用函数来接受上面的代码。
我需要获得Url和凭证作为新创建函数的响应。
作为参考,SomeServiceType是ServiceNowType, UserName和Password是String类型。
我试着用
public List<object>(....strucked here...)
{
...
return ...//again strucked here....(neeed to return url and credentials)..
}
网址是字符串类型的NetworkCredential是C#类的
您可以使用反射和激活创建方法,如下
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);
你可以在asp.net不喜欢这些。
public static List<SomeServiceType> MyFunction(string url, string UserName, string Password)
{
List<SomeServiceType> list = new List<SomeServiceType>();
if (url != null && UserName != null && Password != null)
{
list = new SomeServiceType()
{
Url = "htp://www.test.com/",
Credentials = new NetworkCredential(UserName, Password)
};
}
return list;
}
这不能给解决方案。 – StackOverflow
hi @StackOverflow,我只是给你一个如何得到你想要的输出的例子,因为我没有你的正确数据,我不能给你确切的代码。 – Bharat
好的..谢谢你的例子.. – StackOverflow
如何,因为我在这个问题提到返回响应? – StackOverflow
你想返回列表变量不是吗? –
是的,需要返回列表。 – StackOverflow