本文整理汇总了C#中MemberPath.WithProperty方法的典型用法代码示例。如果您正苦于以下问题:C# MemberPath.WithProperty方法的具体用法?C# MemberPath.WithProperty怎么用?C# MemberPath.WithProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MemberPath
的用法示例。
在下文中一共展示了MemberPath.WithProperty方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PathString
public void PathString()
{
var path = new MemberPath(typeof(MemberPathTypes.With<MemberPathTypes.Parent>));
Assert.AreEqual("With<Parent>", path.PathString());
path = path.WithProperty(ChildProperty);
Assert.AreEqual("With<Parent>.Child", path.PathString());
path = path.WithProperty(ParentProperty);
Assert.AreEqual("With<Parent>.Child.Parent", path.PathString());
}
示例2: RefLoopAndMemberErrors
public void RefLoopAndMemberErrors()
{
var rootType = typeof(ErrorTypes.With<ErrorTypes.Parent>);
var valueProperty = rootType.GetProperty(nameof(ErrorTypes.With<ErrorTypes.Parent>.Value));
var parentType = typeof(ErrorTypes.Parent);
var childProperty = parentType.GetProperty(nameof(ErrorTypes.Parent.Child));
var parentProperty = typeof(ErrorTypes.Child).GetProperty(nameof(ErrorTypes.Child.Parent));
var path = new MemberPath(rootType)
.WithProperty(valueProperty);
var loopPath = path.WithProperty(childProperty)
.WithProperty(parentProperty)
.WithProperty(childProperty);
var referenceLoop = new ReferenceLoop(loopPath);
var refLoopErrors = ErrorBuilder.Start()
.CreateIfNull(rootType)
.Add(referenceLoop)
.Finnish();
var typeMustNotifyError = TypeMustNotifyError.GetOrCreate(parentType);
var typeErrors = new TypeErrors( parentType, typeMustNotifyError);
var memberErrors = new MemberErrors(path, typeErrors);
var notifyErrors = ErrorBuilder.Start()
.CreateIfNull(rootType)
.Add(memberErrors)
.Finnish();
var merged = ErrorBuilder.Merge(refLoopErrors, notifyErrors);
Assert.AreEqual(2, merged.Errors.Count);
Assert.AreEqual(8, merged.AllErrors.Count);
}
示例3: 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());
}
示例4: LastMember
public void LastMember()
{
var rootType = typeof(MemberPathTypes.With<MemberPathTypes.Parent>);
var path1 = new MemberPath(rootType);
Assert.AreEqual(rootType, path1.Root.Type);
Assert.AreEqual(null, path1.LastMember);
var path2 = path1.WithProperty(ChildProperty);
Assert.AreNotSame(path1, path2);
Assert.AreEqual(rootType, path2.Root.Type);
Assert.AreEqual(ChildProperty, path2.LastMember);
var path3 = path2.WithProperty(ParentProperty);
Assert.AreEqual(rootType, path3.Root.Type);
Assert.AreEqual(ParentProperty, path3.LastMember);
}