Tag: custom attributes

如何从子类添加属性到基类的字段?

基类: public class XmlNameValueField : XmlBaseField { [XmlAttribute(“n”)] [Required] public string Name { get; set; } [XmlText] public string Value { get; set; } } 儿童class: public class DateField : XmlNameValueField { } 在Child类字段中,Name必须具有其他属性 [DataType (DataType.EmailAddress)]

设置ASP.NET Button属性客户端和读取属性值服务器端

在使用javascript更改属性值后,如何检索Button自定义属性? 例: Asp文件 var btn1 = ‘#’; var btn2 = ‘#’; $(btn1).click(function(e) { e.preventDefault(); $(btn2).attr(“actIndex”, “2”); }); CodeBehind文件 protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) Button2.Attributes.Add(“actIndex”,”1″); } protected void Button2_Click(object sender, EventArgs e) { Button btn = (Button)sender; // this should be 2 if button1 has been clicked string actIndex = btn.Attributes[“actIndex”]; } 如果我单击Button1然后单击Button2 […]

在运行时更改Class Attribute中的值

如果我有这样的课程 [Attr(“Blah”, Data = “Blah”)] public class Test : SuperClass{} 有没有办法可以在运行时更改类的实例的属性值? 例如在伪代码中 SuperClass test = new Test(); test.Attr.Value = “blah1”; test.Attr.Data = “blah2”; (我有一个类的实例,我想更改属性,作为它扩展的类强制转换)

来自属性的C#自定义属性

所以我有一个我想要循环的类的属性集合。 对于每个属性,我可能有自定义属性,所以我想循环这些属性。 在这种特殊情况下,我在City Class上有一个自定义属性 public class City { [ColumnName(“OtroID”)] public int CityID { get; set; } [Required(ErrorMessage = “Please Specify a City Name”)] public string CityName { get; set; } } 该属性定义如此 [AttributeUsage(AttributeTargets.All)] public class ColumnName : System.Attribute { public readonly string ColumnMapName; public ColumnName(string _ColumnName) { this.ColumnMapName= _ColumnName; } } 当我尝试遍历属性[工作正常]然后遍历属性时,它只是忽略属性的for循环并且不返回任何内容。 foreach (PropertyInfo Property […]

从Attribute转到CustomAttributeData或向后

题。 有没有办法根据我的自定义属性的给定实例获取CustomAttributeData的实例,比如, MyAttribute ? 或相反亦然? 我为什么需要这个? MyAttribute的实例包含我感兴趣的属性,而CustomAttributeData的实例包含我感兴趣的实际构造函数参数。所以现在我实现了双重工作: 首先 ,通过调用获取MyAttribute的实例 Attribute.GetCustomAttribute(property, typeof(MyAttribute)) as MyAttribute , 第二 ,通过调用获取CustomAttributeData的实例 CustomAttributeData.GetCustomAttributes(property) 并走过这个系列。 PS我已经看过这个问题 ,但没有在那里找到理想的解决方案。

自定义属性与非自定义属性?

实现ICustomAttributeProvider接口的东西将允许您获取已通过GetCustomAttributes方法应用于它的自定义属性。 据我所知,自定义属性基本上是一个特殊的类(以“属性”结尾并扩展Attribute类),创建该类以使用适当的语法(方法或类之前的方法或类)应用于方法或类之前的[FooAttribute]例如,在C#中的/ class / etc。 但如果这是一个自定义属性,那么什么是非自定义属性? 我曾经认为与.NET捆绑在一起的属性是非自定义的,但GetCustomAttributes甚至会返回System.ThreadStaticAttribute属性,这些属性是.NET框架的核心。 是否存在非自定义属性,或“自定义属性”只是一个重言式?

Log函数调用c#中的参数值和返回值

假设我有一个看起来像这样的课程。 public static class Config { public static string GetAppSetting(string key) { return ConfigurationManager.AppSettings[key].ToString(); } } 我想记录对此方法的每次调用以及关键参数和返回值。 我想要做的唯一代码更改是: [Log] public static class Config { public static string GetAppSetting(string key) { return ConfigurationManager.AppSettings[key].ToString(); } } 我很可能使用log4net来记录来自Log属性的调用。 怎么能实现这一目标? 提前致谢!

使用CustomAttributes和GetCustomAttributes()的优势

我今天注意到我的intellisense中出现了一些新的属性,用于.NET 4.5项目的System.Type对象。 其中一个名为CustomAttributes 。 我对此很感兴趣,因为我之前已经知道GetCustomAttributes是最昂贵的reflection调用之一(当然,除了DynamicInvoke之外)。 据我所知,每次调用GetCustomAttributes导致调用属性的构造函数(从而调用内存)。 我经常使用单独缓存自定义属性来避免在处理大量类型等时出现性能瓶颈。 所以,我编写了一个测试,看看CustomAttributes是否比GetCustomAttributes更GetCustomAttributes : static void Main(string[] args) { var sw = Stopwatch.StartNew(); Debug.WriteLine(typeof(Attributed).GetType()); for (int i = 0; i a.AttributeType) .ToList(); } sw.Stop(); Debug.WriteLine(“Using .NET 4.5 CustomAttributes property: {0}”, sw.Elapsed); sw = Stopwatch.StartNew(); for (int i = 0; i a.GetType()) .ToList(); } sw.Stop(); Debug.WriteLine(“Using GetCustomAttributes method: {0}”, sw.Elapsed); } […]

asp.net mvc中自定义属性的执行优先级

我的asp.net mvc(C#)应用程序中有两个自定义属性。 [CustAttribute1()] [CustAttribute2()] 当我将这些属性用于我的行为时,会先执行哪些属性? [CustAttribute1()] [CustAttribute2()] public ActionResult Index() { 我可以为我的操作使用多个自定义属性吗? 如果是这样,在上面的Action中,首先会执行哪个自定义属性?

接口和抽象类中的Xml属性

我今天发现了一些困扰我的东西: 1.如果我有这个: public interface INamed { [XmlAttribute] string Name { get; set; } } public class Named : INamed { public string Name { get; set; } } 它提供以下输出(Name属性序列化为元素): Johan 2.如果我有这个: public abstract class NamedBase { [XmlAttribute] public abstract string Name { get; set; } } public class NamedDerived : NamedBase { public override string […]