在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
程序通过定义和使用特性来指定此类额外的声明性信息。 以下示例声明了 public class HelpAttribute : Attribute { string url; string topic; public HelpAttribute(string url) { this.url = url; } public string Url => url; public string Topic { get { return topic; } set { topic = value; } } } 例如,可按如下方法使用 [Help("https://www.cnblogs.com/taotaozhuanyong/")] public class Widget { [Help("https://www.cnblogs.com/taotaozhuanyong/", Topic = "Display")] public void Display(string text) { } } 可以通过引用特性类的公共读写属性(如上面示例对 如果是通过属性提供其他信息,那么在特性实例返回前,这些属性会设置为给定值。 下面的代码示例展示了如何获取与 Type widgetType = typeof(Widget); //获取为小部件类型定义的每个helpattribute。 var widgetClassAttributes = widgetType.GetCustomAttributes(typeof(HelpAttribute), false); if (widgetClassAttributes.Length > 0) { var attr = (HelpAttribute)widgetClassAttributes[0]; Console.WriteLine($"Widget class help URL:{attr.Url}-Related topic :{attr.Topic}"); } MethodInfo displayMethod = widgetType.GetMethod(nameof(Widget.Display)); //获取为widget.display方法定义的每个helpattribute。 var displayMethodAttributes = displayMethod.GetCustomAttributes(typeof(HelpAttribute), false); if (displayMethodAttributes.Length > 0) { var attr = (HelpAttribute)displayMethodAttributes[0]; Console.WriteLine($"Display method help URL : {attr.Url} - Related topic : {attr.Topic}"); } Console.ReadLine(); 运行结果如下:
|
请发表评论