У меня есть следующий сценарий:Вложенные классы и динамически Invocations вопросы
public class Restriction
{
public string RestrictionName { get; set; }
public bool Eval(decimal Value2)
{
Type typeRestriction = Type.GetType(RestrictionName);
return (bool)typeRestriction.InvokeMember("Eval",
BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static,
null,
null,
new object[] { this, Value2 });
}
/* Nested Classes */
class A
{
public static bool Eval(Restriccion r, decimal value)
{
// Do something
}
}
class B
{
public static bool Eval(Restriccion r, decimal value)
{
// Do something
}
}
}
Когда я попробовать:
Restriction r = new Restriction();
r.RestrictionName = "A";
r.Value = 15;
r.Eval(16);
я получаю System.NullReferenceException: Object reference not set to an instance of an object.
Debug показывает мне, что typeRestriction
равна нулю. Зачем? Имеют ли вложенные классы специальное лечение?
И это [описано здесь] (http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx). –