我有一个域类,我不允许更改任何对象的类型(域目前太复杂和紧密绑定)。但是,如果需要,我可以添加额外的映射属性。
下面的域类有两个属性,它们是不可空的bool。我需要能够为这两个属性分配空值。
public class POCMainClassOriginal
{
public bool MyProperty { get; set; }
public bool MyProperty2 { get; set; }
}
以下是添加映射属性的简单解决方案:
public class POCMainClassModified
{
public bool MyProperty { get; set; }
public bool? MappedMyProperty
{
get
{
return MyProperty;
}
set
{
MyProperty = value.HasValue ? value.Value : false;
}
}
public bool MyProperty2 { get; set; }
public bool? MappedMyProperty2
{
get
{
return MyProperty2;
}
set
{
MyProperty2 = value.HasValue ? value.Value : false;
}
}
}
现在在每个映射的属性上添加额外的10行代码似乎是广泛而重复的。是否有一种简洁明了的方法来定义可能的扩展方法或新类,以便我简化这些扩展。
public class POCExtensions
{
public bool? POCBool
{
get
{
return OriginalValue;
}
set
{
OriginalValue = value.HasValue ? value.Value : false;
}
}
}
public class POCMainClassModifiedAgain
{
public bool MyProperty { get; set; }
public POCExtensions.POCBool MappedMyProperty { get; set; }
public bool MyProperty2 { get; set; }
public POCExtensions.POCBool MappedMyProperty2 { get; set; }
}
在上面的课程中,我还需要以某种方式传递原始值。
注意:虽然我知道可能有更简单的方法来解决bool问题,但我对如何简化属性定义感兴趣。