【发布时间】:2009-08-22 08:21:21
【问题描述】:
我希望能够创建采用给定对象的“转换”类,对其执行一系列转换(即更改属性值)并跟踪执行的转换。所执行的转换将根据所提供对象的属性而有所不同。
我希望能够使用流畅的样式界面在给定的转换类中应用转换规则(它们是有限的和通用的)。
在高层次上,我知道我可能需要一个 ITransformer、一个 ITransformationRule 和 ITransformationResult 以及一些其他对象来实现这一点。
在创建转换类时我希望代码如何工作...
public OfflinePersonToOnlineTransformation : TransformerBase<Person>
{
public OfflinePersonToOnlineTransformation()
{
Transform(x => x.PersonClassification)
.WhenCreatedBefore("1/1/2000")
.ClassifyAs("Online");
}
}
我了解我的 TransformerBase 需要实现采用 Func 或 Expression 的“Transform”方法,并且我了解它需要保留 ITransformationRules 的集合。我也明白我可能会为“WhenCreatedBefore”和“ClassifyAs”方法使用扩展方法。
问题是,我不知道如何让它全部工作。我已经查看了 Fluent Validation .NET 的源代码,因为它以这种方式进行验证,但复杂性让我感到厌烦。我正在寻找涵盖此内容的教程,或者以非常简单的方式将其拼写出来的人。
提前致谢。
【问题讨论】:
-
请不要告诉我我不应该这样做......我已经承诺学习它......如果你不能帮助我这样做,请不要回答。
-
如果您真的想尝试从表达式中提取属性,请参阅我对stackoverflow.com/questions/1061613/…的回答
标签: c# lambda expression-trees fluent-interface