3
我見過的用戶線程之前解決這個問題,如: C# very dynamic invocation動態調用C#ASP.NET的方法
但我還沒有與給定的代碼很成功。我基本上試圖調用一個使用一些變量字符串的方法。
這是我到目前爲止。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Model : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string TargetMethod = "Index";
Type t = System.Type.GetType("_Model");
System.Reflection.MethodInfo methodInfo = t.GetMethod(TargetMethod);
methodInfo.Invoke(t, new object[] {});
}
protected void Index(){
Response.Write("Index: Dynamically called!");
}
}
在視圖頁上,我應該看到字符串「Index:Dynamically called!」寫入屏幕,但我得到錯誤:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
請幫助,謝謝。
仍然無法正常工作,因爲Invoke的參數是錯誤的。它應該是'this'而不是't'。 – 2013-03-15 13:28:10
@BennorMcCarthy已經在編輯:) – 2013-03-15 13:28:43
他的代碼還有另一個錯誤。應該是'methodInfo.Invoke(this,new object [] {})'; – hazzik 2013-03-15 13:29:00