本文整理汇总了C#中MemberPath.HasLoop方法的典型用法代码示例。如果您正苦于以下问题:C# MemberPath.HasLoop方法的具体用法?C# MemberPath.HasLoop怎么用?C# MemberPath.HasLoop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MemberPath
的用法示例。
在下文中一共展示了MemberPath.HasLoop方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WithLoop
public void WithLoop()
{
var rootType = typeof(MemberPathTypes.With<MemberPathTypes.Parent>);
var valueProperty = rootType.GetProperty(nameof(MemberPathTypes.With<MemberPathTypes.Parent>.Value));
var childProperty = typeof(MemberPathTypes.Parent).GetProperty(nameof(MemberPathTypes.Parent.Child));
var parentProperty = typeof(MemberPathTypes.Child).GetProperty(nameof(MemberPathTypes.Child.Parent));
var path = new MemberPath(rootType)
.WithProperty(valueProperty)
.WithProperty(childProperty)
.WithProperty(parentProperty);
Assert.AreEqual(false, path.HasLoop());
path = path.WithProperty(childProperty);
Assert.AreEqual(true, path.HasLoop());
}
示例2: VerifyMemberRecursively
private static TypeErrorsBuilder VerifyMemberRecursively(
TypeErrorsBuilder typeErrors,
Type type,
MemberSettings settings,
MemberPath memberPath,
Func<MemberSettings, MemberPath, TypeErrors> getErrorsRecursively,
MemberInfo memberInfo)
{
memberPath = memberPath.WithMember(memberInfo);
if (memberPath.HasLoop())
{
if (settings.ReferenceHandling == ReferenceHandling.Throw)
{
typeErrors = typeErrors.CreateIfNull(type)
.Add(new ReferenceLoop(memberPath));
}
return typeErrors;
}
var recursiveErrors = getErrorsRecursively(settings, memberPath);
if (recursiveErrors == null)
{
return typeErrors;
}
var memberErrors = new MemberErrors(memberPath, recursiveErrors);
typeErrors = typeErrors.CreateIfNull(type)
.Add(memberErrors);
return typeErrors;
}