我一直在研究使用 LINQ 表达式的静态反射——非常酷!
我有一个想法——一个类是否有可能基于对另一类进行的静态反射在一个类上“生成”字段?我特别想到了我在这里多次看到的 Builder 模式。我想做一个 fluent-nhibernate 风格的属性注册,在构建器上“生成”与我想要构建的类匹配的字段。像这样的东西:
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;
}
}
}
这当然有效,并且列出了相同的属性 # 次,但感觉更冗长且不太灵活。看来我应该可以在这里做一些匿名类型的事情?