1
5
不,如果没有编写比原始版本多得多的(神秘的?)代码 (您必须使用反射来检查属性上的属性,还有什么没有..我有没有提到它是“较慢的”)。。这是我可以忍受的复制品。 MS也有同样的需求 raising events when a property is changed . INotifyPropertyChanged是更改通知的重要接口。我见过的每一个实现 做
如果可能的话,我想微软的那些聪明人已经有了类似的东西。。 |
2
3
您可以尝试设置一个代码段,以便轻松创建这些代码段。 |
3
3
|
4
2
不,当您使用自动属性时,您对实现没有任何控制权。最好的选择是使用模板工具、代码片段或创建私有SetValue
|
5
0
另一种选择可能是代码生成器,如codesmith,用于自动创建属性。如果要创建的属性是数据库表中的列,这将特别有用 |
6
0
我可以推荐使用 Enterprise Library 为此目的。例如,每当您输入/退出一个方法时,策略应用程序块就会提供执行“某事”的基础结构(something=您可以自己编写代码)。可以使用属性控制行为。以此作为一个提示,您可以详细了解企业库的文档。 |
7
0
有一个DefaultValueAttribute可以指定给属性,这主要由设计器工具使用,以便它们可以指示属性何时更改,但是,它可能是一种“整洁”的方式,用于描述属性的默认值,从而能够识别属性是否更改。
警告:您无法判断属性是否已从非默认值更改回默认值。 |
8
0
我认为解决这个问题的最好方法是使用面向方面编程(AOP)。Mats Helander做了一个 write up on this on InfoQ . 这篇文章有点凌乱,但可以照着写。 有许多不同的产品在.NET空间中进行AOP,我推荐PostSharp。 |
9
0
如果你真的选择了属性,我敢肯定你必须这样做 roll your own logic 推断出它们的含义以及如何处理它们。无论使用什么自定义类对象,都必须有执行这些属性操作/检查的方法,最好是在实例化时。 否则,您将考虑使用maybe事件。您仍然需要将事件添加到每个set方法中,但这样做的好处是您不必硬编码如何处理每个属性上的脏集,并且可以在一个位置控制要执行的操作。这至少会引入更多的代码重用。 |
10
0
上下文绑定对象。如果创建一个扩展上下文绑定对象的类并创建一个ContextAttribute,则可以截获对此类属性的调用并设置IsDirty。NET将为您的类创建一个代理,以便所有调用都通过类似远程处理接收器的方式进行。
当从另一个类调用property1时,将调用您的代理。但是,如果另一个类调用property2,即使property2集将调用property1,也不会调用任何代理(当您在该类中时,不需要代理)。
|
Aleo111 · 在java中向对象数组添加更多变量 2 年前 |
Xutao · 我如何使用openssl创建这样的CSR 2 年前 |
John Huang · 基于部分列表元素名称分配属性表名称的有效方法 2 年前 |
Melvin · Python3 XML findall空输出 6 年前 |
Aaron St Clair · 从常规查询访问客户属性 6 年前 |
huseyin · Rapidminer-拆分具有错误类型值的行 6 年前 |