我有私有只读字段的课程
public class Bar
{
private readonly ICollection<Foo> somePrivateCollection = new HashSet<Foo>();
public IEnumerable<Foo> SomePublicCollection => somePrivateCollection;
public int z;
}
和
public class Foo
{
public int x;
}
我可以通过 GetField => SetValue 设置这个字段
[Fact]
public void someTest()
{
var fooObjects = new Faker<Foo>().Generate(1);
var barObject = new Faker<Bar>().RuleFor(t => t.z, f => f.Random.Int())
.Generate();
barObject.GetType()
.GetField("somePrivateCollection", System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance)
.SetValue(barObject, fooObjects);
}
但是如何使用相同的样式设置此字段
var barObject = new Faker<Bar>().RuleFor(t => t.z, f => f.Random.Int())
.RuleSetter("somePrivateCollection",fooObjects)
.Generate();