Итак, у меня есть этот класс:GetMethod возвращает нуль
public class tUObject
{
public const string strSelect = "SELECT Id, cName, Major FROM tUObject WHERE Id = ";
//constructors and stuff...
public virtual void FillElem(ref List<tUObject> l, DataSet ds)
{
//...
}
}
И MainWindow()
Я хочу, чтобы добраться до FillElem()
помощью GetMethod()
:
static List<tUObject> obj = new List<tUObject>();
static DataSet objDataSet = new DataSet();
//...
string strClass = objDataSet.Tables[0].Rows[0]["Class"].ToString(); //"tUObject"
Type t = Type.GetType("UniDB_WPF." + strClass); //tUObject with the assembly name
Type tlist = obj.GetType(); //list<tUObject>
Type tset = objDataSet.GetType(); //DataSet
//Getting strSelect from tUObject
string strAccessSelect = t.GetField("strSelect").GetRawConstantValue().ToString() + ((int)item.Tag).ToString();
//...
//Getting FillElem from tUObject
MethodInfo mi = t.GetMethod("FillElem", BindingFlags.Public, null, new[] { tlist, tset }, null);
Проблема заключается в том, GetMethod()
возвращает нуль, в то время как GetField()
работает отлично. tlist
и tset
не являются нулевыми и возвращают «List'1» и «DataSet» соответственно. Так почему это происходит?
следует, что 'tlist' аргумент может быть немного отличаться, видя, что тип первого аргумента НЕ' 'Список, но' исх Список '' –
Пробовал tlist.MakeByRefType() ', ничего не изменилось. – dasgluk
Что ДОЛЖНО сделать трюк ... –