我一直在研究LINQ表达式的静态反射 - 非常酷!来自静态反射的动态字段?
我以为有一个想法 - 一个类是否有可能根据另一个类上的静态反射在一个类上“生成”字段?我特意想到了我在这里看到的Builder模式很多次。我想做一个流利的nhibernate风格的属性注册,在构建器上生成与我想构建的类相匹配的字段。 Soemthing像这样:像这样
public class Color
{
private Color()
{
}
public string Name { get; private set; }
public class Builder : BuilderBase<Color>
{
public Builder()
{
Property(x => x.Name);
}
public Build()
{
return built_up_color;
}
}
}
和支持的构造函数语法:
Color c = new Color.Builder() { Name = "Red" }.Build();
所有这一切的关键是减少我要重复定义颜色的性的判定的次数。我玩这个:
public class Color
{
private Color()
{
}
public string Name { get; private set; }
public class Builder
{
private Color _color = new Color();
public string Name
{
get { return _color.Name; }
set { _color.Name = value; }
}
public Build()
{
return _color;
}
}
}
这当然可以工作,并列出属性相同的次数,但感觉更加灵活和不太灵活。似乎我应该可以在这里做一些匿名类型的东西?
谢谢您的回答。我有一个颜色的构造函数,但它意味着再次参数化参数。您是否看到建造商“通过”颜色的问题? – n8wrl 2009-04-17 20:15:06
我没有看到问题(除非迂腐模式:),但*我*没有看到建设者的观点。 – 2009-04-18 06:41:34