我的代码正在抛出异常,我不知道为什么。也许有人可以帮助我。
例外:
system.missingmethodexception:'类型上的构造函数 'System.Reflection.RuntimePropertyInfo'找不到。'
我的代码:
class Program
{
static void Main(string[] args)
{
Test t1 = new Test();
Test1 t = new Test1();
typeof(Test1).GetProperty("Name").SetValue(t, "tetst");
// throws error:
var c = Activator.CreateInstance(typeof(Test).GetProperty("Test1test").GetType());
typeof(Test).GetProperty("Test1test").SetValue(c, t);
Console.Read();
}
}
public class Test
{
public Test()
{
Test1test = new Test1();
}
public int Id { get; set; }
public string Name { get; set; }
public Test1 Test1test { get; set; }
}
public class Test1
{
public Test1()
{ }
public int Id { get; set; }
public string Name { get; set; }
}
您需要从
更改var c = Activator.CreateInstance(typeof(Test).GetProperty("Test1test").GetType());
更改为
var c = Activator.CreateInstance(typeof(Test));
typeof(Test).GetProperty("Test1test").GetType()
将返回test1 type
但是您要设置属性Test1test
,因此您需要创建Test
typeof(Test).GetProperty("Test1test").GetType()
返回 RuntimePropertyInfo
类型,而不是 Test1
类型。