访问{get set}属性方法,没有反射

时间:2013-10-23 00:50:49

标签: .net

我希望能够访问属性的void set_PropertyName(var value)var get_Property()方法。

有没有办法做这个没有反思? 没有得到Compiler Error CS0571

修改 没有反射,我的意思是没有Reflection所做的开销(不仅仅是编写代码),因为这是需要运行很多次的代码,我想要它而没有反射的开销。 不幸的是,动态也使用了封面下的反射。

看起来这可能是用c ++ .net而不是其他语言(虽然我无法分辨,因为我的C ++安装已经填满了)。

感谢您的回复。

1 个答案:

答案 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; }
    }
}