我想创建小的单值«值对象»,以便为值赋予在域的上下文中有意义的名称,并结合不变量,如下所示:
public class Description
{
private readonly string _value;
public Description(string value)
{
if (value.IsNullOrWhiteSpace() || value.Length > 256)
throw new ArgumentException();
_value = value;
}
public static implicit operator Description(string value)
{
return new Description(value);
}
public static implicit operator string(Description description)
{
return description._value;
}
}
我可以找到关于自动映射«value object»(或NHibernate术语中的“组件”)的所有示例都使用公共属性。
如果没有自动映射,上面的«值类型»将被明确映射,如下所示:
mapping.Component(_ => _.Description, m => m.Map(Reveal.Member<Description>("_value")).Column("Description"));