系统原来是通过webservice实现的,现在需要在webservice访问cookie, 但在webservice中没法调用cookie,后来发现可以通过下列方法实现:具体例子如下 :
protected void Page_Load(object sender, EventArgs e)
{
//参数定义
object[] args = new object[]{};
Type type = this.GetType();
//动态调用方法,方法名可以通过参数传过来
MethodInfo methodInfo = type.GetMethod("Test");
if (methodInfo != null)
{
args = new object[methodInfo.GetParameters().Length];
//对方法名的参数进行赋值
for (int i = 0; i < methodInfo.GetParameters().Length; i++)
{
ParameterInfo param = methodInfo.GetParameters()[i];
args[i] = Request.QueryString[param.Name];
}
//执行方法
methodInfo.Invoke(this, args);
}
}
public void Test(string Id,string name)
{
//Response.Write(Request.Cookies[0].Value);
Response.Write(Id + ":" + name);
}
public void TestA()
{
Response.Write("dddd");
}
{
//参数定义
object[] args = new object[]{};
Type type = this.GetType();
//动态调用方法,方法名可以通过参数传过来
MethodInfo methodInfo = type.GetMethod("Test");
if (methodInfo != null)
{
args = new object[methodInfo.GetParameters().Length];
//对方法名的参数进行赋值
for (int i = 0; i < methodInfo.GetParameters().Length; i++)
{
ParameterInfo param = methodInfo.GetParameters()[i];
args[i] = Request.QueryString[param.Name];
}
//执行方法
methodInfo.Invoke(this, args);
}
}
public void Test(string Id,string name)
{
//Response.Write(Request.Cookies[0].Value);
Response.Write(Id + ":" + name);
}
public void TestA()
{
Response.Write("dddd");
}