我希望能够访问属性的void set_PropertyName(var value)
和var get_Property()
方法。
有没有办法做这个没有反思?
没有得到Compiler Error CS0571
。
修改 没有反射,我的意思是没有Reflection所做的开销(不仅仅是编写代码),因为这是需要运行很多次的代码,我想要它而没有反射的开销。 不幸的是,动态也使用了封面下的反射。
看起来这可能是用c ++ .net而不是其他语言(虽然我无法分辨,因为我的C ++安装已经填满了)。
感谢您的回复。
答案 0 :(得分:1)
是的,如果您使用Microsoft.VisualBasic命名空间中提供的callbyname
离;
using System;
using Microsoft.VisualBasic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var test = new Test();
Microsoft.VisualBasic.Interaction.CallByName(test, "property" ,CallType.Set, 1);
Console.WriteLine(Microsoft.VisualBasic.Interaction.CallByName(test, "property", CallType.Get));
Console.ReadKey(true);
}
}
public class Test
{
public int property { get; set; }
}
}