Tag: 属性

为什么整数属性有时会返回0?

[编辑:我意识到失败的参数实际上是一个双精度而不是一个整数。 根据日志,整数计时器都不会失败。 大多数计时器和参数都是整数,但不是全部。 双打不是primefaces的,毕竟缺乏锁定可能是个问题。 我有一个应用程序,它使用包含可配置值属性的类。 应用程序中使用的大多数属性都是派生的。 这些值在启动时设置,在应用程序的主要部分运行时不会更改。 private int _TimerInterval; public int TimerInterval { get { return _TimerInterval; } } private int _Factor1; public int Factor1 { set { _Factor1 = value; _TimerInterval = _Factor1 * _Factor2; } get { return _Factor1; } } private int _Factor2; public int Factor2 { set { _Factor2 = […]

是否可以在自己的类中隐藏字段(或只是操纵/隐藏自动完成)?

我有一个(相当)复杂的文件与通常的组件混合。 我有一个字段(称为keyloaded )和一个链接属性(称为Keyloaded )。 在课堂上工作时,我不小心直接操纵了场地而不是财产。 这很可能是因为我对这一切仍然相当新(我现在三重检查!),然而,这已经是一个私人领域,除了与class级合作之外,它很有用。 我能做的只是简单的事情,将其从自动完成中删除吗? 如果没有,类似情况的最佳做法是什么? 在写这个问题的时候,我突然想起了我的书,他们谈到了下划线……这是否是最好的解决方案 – 把它放在视线之外?

为后面的代码中的xaml元素设置多绑定

我有以下工作XAML代码,它基本上绑定了几个属性来计算我的用户控件的最终位置: … 由于各种原因(但特别是为了避免相关来源,我现在正试图在代码中做同样的事情而没有成功。 这是我目前的代码: public CurvePointControl(CurveEditor CV) { InitializeComponent(); MultiBinding multiBinding = new MultiBinding(); multiBinding.Converter = m_VToYConverter; multiBinding.Bindings.Add(new Binding(“V”)); multiBinding.Bindings.Add(new Binding(CV.MinVProperty)); // doesn’t work multiBinding.Bindings.Add(new Binding(CV.MaxVProperty)); // doesn’t work multiBinding.Bindings.Add(new Binding(CV.ActualHeight)); // doesn’t work multiBinding.NotifyOnSourceUpdated= true; this.SetBinding(TranslateTransform.YProperty, multiBinding); //Doesn’t work too: //BindingOperations.SetBinding(XTranslateTransform, TranslateTransform.YProperty, multiBinding); } 我仍然无法相信将XAML转换为c#代码是如此困难。 转换器被调用但只有一次且没有有效的属性值。 什么是错的? 我怎么能调试这样的问题?

以基本forms定义的自定义属性在重建时会以inheritance的forms丢失其状态

我在使用基本forms的属性时遇到问题,而这些属性没有以inheritance的forms维护状态。 环境: Visual Studio 2010 Ultimate Service Pack 1:版本10.0.40219.1 SP1Rel .Net Framework:版本4.0.30319 SP1Rel Windows 7旗舰版 下面是重现的源代码和步骤: using System; using System.ComponentModel; using System.Windows.Forms; namespace Test { public partial class BaseForm : Form { [DefaultValueAttribute(true)] public bool ControlVisible { get { return this.checkBox1.Visible; } set { this.checkBox1.Visible = value; } } [DefaultValueAttribute(false)] public bool ControlChecked { get […]

在c#中用reflection或类似的(没有第三方库)替换Property Getter / Setter

例如,我有一个包含在类中的属性 public class Greeter { private Hashtable _data; public string HelloPhrase { get; set; } public Greeter(data) { _data = data; } } 我想要做的是向HelloPhrase属性添加一个属性,就像这样 [MyCustomAttribute(“Hello_Phrase”)] public string SayHello { get; set; } 这样在构造函数中我可以反映已定义MyCustomAttribute的类(Greeter)中的Properties,并将属性的Get / Set方法设置为匿名方法/委托。 public Greeter(data) { _data = data; ConfigureProperties(); } 我已经设法从类中获取PropertyInfo,但这只暴露了GetSetMethod(http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.getsetmethod.aspx)和相应的GetGetMethod。 我已经在这里和网上阅读了一些问题,但找不到不使用某种Aspects库的答案。 任何人都可以提供指向在运行时设置Get / Set方法的指针吗? 理想情况下,像一个代表 x =>_data[keyDefinedByAttribute];

在运行时将EnConverter属性添加到枚举

在C#/ WPF应用程序中,我为一些枚举添加了TypeConverter属性,以便显示本地化文本而不是枚举文本: [TypeConverter(typeof(LocalizedEnumTypeConverter))] public enum MyEnum { EnumVal1 = 0, EnumVal2 = 1, EnumVal3 = 2, } 我已经实现了LocalizedEnumTypeConverter来执行此任务。 当我尝试使用与另一个程序集中定义的枚举相同的方法时出现问题,该枚举无法访问LocalizedEnumTypeConverter,并且与其他应用程序共享(也就是说,我无法添加对LocalizedEnumTypeConverter所在的程序集的引用)定义)。 有没有办法在运行时添加TypeConverter属性? 这样我可以在没有TypeConverter属性的情况下将枚举保留在其他程序集中,然后在我的应用程序中将其添加到运行时。

在NHIbernate中使用带有公式的属性映射

我试图将属性映射到另一个表的任意列。 文档说公式可以是任意SQL,我看到的例子显示相似。 但是,SQL NHibernate生成的甚至不是有效的。 公式中的整个SQL语句被注入SELECT语句的中间。 Property(x => x.Content, map => { map.Column(“Content”); map.Formula(“select ‘simple stuff’ as ‘Content'”); });

防止其他开发人员在类中使用基本方法

我有一个使用文件系统实体来操作数据的类。 我们有几种专门设计用于(尝试)处理我们使用此方法遇到的一些问题的方法(文件锁定,不存在的文件等)。 理想情况下,如果其他开发人员尝试通过System.IO直接访问文件系统而不是使用帮助程序方法,我希望能够发出警告。 这可能吗? 我正在寻找的行为是有效地标记File.ReadAllText()等方法,就像它们已经过时一样,但仅限于此项目(非解决方案范围内)。 我做了一些挖掘,看起来我唯一的选择是“告诉他们确保他们使用你的方法”。 我希望有人可以给我一个不同的,更有帮助的答案。 🙂 –EDIT–自定义StyleCop或FxCop规则的建议是好的,但遗憾的是在这种情况下不是不切实际的(并非部门中的每个开发人员都使用这些优秀的工具),并且执行文件访问的合法方法确实使用System.IO 。 将“忽略”属性添加到合法方法中也是一个危险的想法。 如果有人看到我如何“破坏”我自己的规则,他们可能会将属性复制到他们自己的方法中。

将Func作为属性参数传递以保护MVC路由

我正在尝试从满足一系列标准的一组用户中保护我的MVC路由。 由于MVC似乎使用了很多属性而且Steven Sanderson在他的专业MVC书中使用了一个安全可扩展性,所以我开始沿着这条路走下去,但我想根据我应用它的动作来定义规则。 有些行为仅适用于员工,有些则不适用。 有些行为仅适用于公司1,有些则不适用。 所以我在想这种用法…… [DisableAccess(BlockUsersWhere = u => u.Company != “Acme”)] public ActionResult AcmeOnlyAction() { … } [DisableAccess(BlockUsersWhere = u => u.IsEmployee == false)] public ActionResult EmployeeOnlyAction() { … } 看起来很干净,我真的很容易实现,但我得到以下编译器错误: ‘BlockUsersWhere’不是有效的命名属性参数,因为它不是有效的属性参数类型 显然你不能使用Func作为属性参数。 任何其他建议可以解决这个问题或其他提供我们在MVC项目中喜欢的简单用法的建议吗?

C#属性组

有没有办法建立一组属性? 之前: [SuppressMessage(“Microsoft.Design”, “CA1061”)] [SuppressMessage(“Microsoft.Usage”, “CA1812”)] [SuppressMessage(“Microsoft.Design”, “CA1064”)] public abstract void Foo(); 我想要的是: [SpecialStuff] public abstract void Foo(); 这可能吗? 我可以构建一个将其他人分组的属性吗?