猿问
自定义属性的构造函数何时运行?
什么时候运行?它是否对我应用它的每个对象都运行一次,还是只运行一次?它可以做任何事情,或者其动作受到限制吗?
潇湘沐
浏览 491
回答 3
3回答
Smart猫小萌
在属性构造函数内设置调试器断点,并编写一些反射代码以读取那些属性。您会注意到,只有从relfection API返回属性对象后,才能创建属性对象。属性是每个类的。它们是元数据的一部分。看看这个:Program.csusing System;using System.Linq;[My(15)]class Program{ static void Main(string[] args) { Console.WriteLine("Program started"); var ats = from a in typeof(Program).GetCustomAttributes(typeof(MyAttribute), true) let a2 = a as MyAttribute where a2 != null select a2; foreach(var a in ats) Console.WriteLine(a.Value); Console.WriteLine("Program ended"); Console.ReadLine(); }}MyAttribute.csusing System;[AttributeUsage(validOn : AttributeTargets.Class)]public class MyAttribute : Attribute{ public MyAttribute(int x) { Console.WriteLine("MyAttribute created with {0}.", x); Value = x; } public int Value { get; private set; } }结果Program startedMyAttribute created with 15.15Program ended但不必担心属性构造函数的性能。它们是反思的最快部分:-P
0
0
0
随时随地看视频
慕课网APP
相关分类
C#
typedef入门问题
1 回答
.NET
.net 中 字符串含有超链接,如何给超链接自动加上a标签?
1 回答
请问.net 中用jquery传值安全吗?
2 回答
我要回答