AutoFixture – 如何调用方法,如何设置autoproperty的私有setter?

这是我的class级:

public MyClass { public int Id { get; private set; } public SetAssignableId (int id) { this.Id = id; } } 

我想让AutoFixture通过SetAssignableId或私人设置器设置Id。

今天无法使用AutoFixture调用私有setter。 虽然它在内部使用reflection,但它在设计上尊重类型的公共API。

在问题板上有一个突出的要求 ,使其更加可定制 – 如果您仔细阅读工作项,您将看到有一个请求,以启用填充受保护的设置器。

但是,通过给出的示例,可以调用SetAssignableId方法。 像这样的定制应该可以解决这个问题:

 fixture.Customize(c => c.Do(mc => mc.SetAssignableId(fixture.CreateAnonymous())));