您可以使用 ParentAttribute 设置 User 类的显示名称。详细信息可以在这里找到。
更新:您还可以使用 SourceAttribute.MaxTypeNestingLevel 属性来控制源对象的层次结构级别数以及它声明的所有引用类型。详情在这里。使用 ExcludeFromEvaluationAttribute 类从编辑器中删除任何源成员,从而从评估中删除。它的文档在这里
更新 2:考虑以下两个类:
public class Address
{
public Address() { }
public string Street { get; set; }
public Address InnerAddress { get; set; }
}
[Source(MaxTypeNestingLevel = 1)]
public class Patient
{
public Patient() { }
public string Name { get; set; }
public Address InnerAddress { get; set; }
}
如果我将 Patient 类作为其源提供给规则编辑器并将嵌套级别的值设置为 1 或更少,我会得到以下菜单选项:
(
Name
即编辑器忽略源中的所有引用类型,因为级别为 1。
如果我给它 2 级,我会在菜单中看到以下选项:
(
InnerAddress.Street
Name
编辑器显示 InnerAddress 实例(级别 1)及其 Street 属性(级别 2)。
如果我将级别设置为 4,我会得到以下选项:
(
InnerAddress.InnerAddress.InnerAddress.Street
InnerAddress.InnerAddress.Street
InnerAddress.Street
Name
显然,选项现在显示到第 4 级。所有这些选项都在 Code Effects 演示项目之一上进行了测试。