Tag: 属性

DataAnnotation属性伙伴类奇怪 – ASP.NET MVC

鉴于这个POCO类是由EntityFramework T4模板自动生成的(没有也无法以任何方式手动编辑): public partial class Customer { [Required] [StringLength(20, ErrorMessage = “Customer Number – Please enter no more than 20 characters.”)] [DisplayName(“Customer Number”)] public virtual string CustomerNumber { get;set; } [Required] [StringLength(10, ErrorMessage = “ACNumber – Please enter no more than 10 characters.”)] [DisplayName(“ACNumber”)] public virtual string ACNumber{ get;set; } } 请注意,“ACNumber”是一个命名错误的数据库字段,因此自动生成器无法生成正确的显示名称和错误消息,该消息应为“帐号”。 所以我们手动创建这个伙伴类来添加无法自动生成的自定义属性: [MetadataType(typeof(CustomerAnnotations))] public […]

改善财产监控代码?

我在C#游戏中制作了一个实用程序调试类,我正在努力监视和查看属性值。 是这样的: public static class Monitor { private static List monitoredObjects; public static void Initialize() { monitoredObjects = new List(); } public static void Watch(object o) { monitoredObjects.Add(o); } public static void Unwatch(object o) { monitoredObjects.Remove(o); } public static void Draw(RenderWindow app) { //Not actual code, I actually draw this in game foreach (object o […]

如果仅在反映属性时构造属性,为什么属性构造函数如此受限?

如此处所示, 在您反映获取属性值之前,不会调用属性构造函数。 但是,您可能也知道,只能将编译时常量值传递给属性构造函数。 为什么是这样? 我想很多人宁愿做这样的事情: [MyAttribute(new MyClass(foo, bar, baz, jQuery)] 而不是传递一个字符串(导致字符串类型的代码!)与这些值,变成字符串,然后依靠Regex尝试获取值而不是仅使用实际值,而不是使用编译时警告/错误取决于可能会抛出与该类无关的exception,除了它调用的方法使用一些键入错误的属性。 这有什么限制?

覆盖子类中的ReadOnly属性以使其成为读/写(VB.NET或C#)

这在具有属性的VB.NET中似乎不可能,因为属性语句本身必须描述它是否是ReadOnly 。 在我下面的例子中,它不允许我编译ReadWriteChild 。 我想我可以让父读/写,然后让ReadOnlyChild的setter不做任何事情,但这似乎有点hacky。 在这种情况下,最好的替代方案似乎是放弃属性而采用getter / setter方法。 Public MustInherit Class Parent Public MustOverride ReadOnly Property Foo() As String End Class Public Class ReadOnlyChild Inherits Parent Public Overrides ReadOnly Property Foo() As String Get ‘ Get the Property End Get End Property End Class Public Class ReadWriteChild Inherits Parent Public Overrides Property Foo() As String […]

如何使用动态模式创建regularExpressionAttribute来自model属性

public class City { [DynamicReqularExpressionAttribute(PatternProperty = “RegEx”)] public string Zip {get; set;} public string RegEx { get; set;} } 我想创建这个属性,其中模式来自其他属性,而不像原始的RegularExpressionAttribute那样声明静态。 任何想法将不胜感激 – 谢谢

如何在c#中读取自定义文件属性

我正在寻找一种在C#中读取文档属性的方法。 我听说过dsofile.dll,但它似乎是一个旧的COM包装器,并且想知道.NET框架/ C#是否有更现代的东西。 我实际阅读的不是Office文档文件,而是具有自定义属性的Solidworks .SLDDRW文件。 右键单击文件,然后转到“属性”窗口的“自定义”选项卡,可以在Windows资源管理器中查看和更改这些内容。 任何人都知道如何在C#/ .NET 3.5中阅读这些自定义属性? 谢谢!

属性vs公共成员变量

可能重复: C#中的字段和属性有什么区别? 我是一个初学程序员,我已经阅读了所有关于类属性的内容。 书籍声明属性允许您间接访问成员变量。 那么,是什么让它与公共领域直接访问并直接访问它有何不同? 以下是Jesse Liberty学习C#3.0的引用: 例如,您可能希望外部类能够读取值,但不能更改它; 或者您可能想要编写一些代码,以便内部字段只能接受某个范围内的值。 如果您授予外部类免费访问您的成员字段,则无法控制其中任何一个。 我不明白他在这说什么。 有人可以进一步解释这一点,或举例说明为什么我要使用财产而不是公开该字段。 据我所知,现在他们都会完成同样的事情……所以我显然在这里遗漏了一些东西。

如何获取属于自定义属性的属性?

我需要在自定义属性中找到应用自定义属性的属性的类型。 例如: [MyAttribute] string MyProperty{get;set;} 给定MyAttribute的实例,我如何获得MyProperty的Type描述符? 换句话说,我正在寻找System.Type.GetCustomAttributes()的反面

这种.Net(C#)属性的使用是否昂贵?

我想知道.Net中属性的使用,特别是C#是否昂贵,为什么或为什么不呢? 我特别询问C#,除非不同的.Net语言之间没有区别(因为基类库是相同的?)。 所有较新的.Net技术都广泛使用属性,例如Linq to SQL,ASP.Net MVC,WCF,企业库等,我想知道这会对性能产生什么影响。 很多类都会使用某些属性自动修饰,或者某些function/特性需要这些属性。 费用问题是否取决于具体实施细节? 如何将属性编译为IL? 它们是自动缓存还是由实现者决定?

在ASP.NET MVC应用程序中使用HandleErrorAttribute

我有一个关于在我的MVC 5应用程序中使用HandleErrorAttribute的最佳方法的问题。 我们知道,我们可以将此属性添加到全局filter中: filters.Add(new HandleErrorAttribute{View = “Error”}); 这涉及应用程序每次在任何级别的应用程序中抛出未处理的exception时显示“错误”视图。 但是,如果我在其他全局授权或动作filter中有一些逻辑,那产生一些exception,比第一次出现exception时,那么app尝试重定向到Error View,再次其他filter开始执行并再次产生相同的exception,所以asp .net以避免此循环终止应用程序。 那么如何使用这个HandleErrorAttribute来避免这种行为的最佳方法呢? 谢谢! 编辑:经过一些调试我发现这不是HandleErrorAttribute的常见行为,所以只有当我使用自定义路由fe时才会出现这种循环 {key}/{controller}/{action} 当filter逻辑中出现一些错误时,app尝试重定向到错误视图,但是另一个filter逻辑再次开始执行,我甚至在{key}路由参数中看到“错误”值,因此这是不需要的行为。 当我使用默认路由{controller}/{action}这不会发生,并且我完全得到错误视图而没有第二次执行任何全局filter逻辑。