我想找到一种从现有类生成C#类的方法。对于我的一些应用程序服务类,我喜欢创建一个servicebuildertest类来帮助进行单元测试,并希望动态生成....
例如: 我有一个班级
public class MyAppService
{
public MyAppService(IRepository<Person> personRepository, etc....)
{
}
}
我想创建测试构建器类
public class MyAppServiceTestBuilder
{
private IRepository<Person> _personRepository;
public void WithPersonRepository(Mock<IRepository<Person>> personRepository)
{
_personRepository = personRepository.Object;
}
public void Build()
{
return new MyAppService(
_personRepository ?? new Mock<IRepository<Person>>().Object);
}
}
可以使用哪些技巧来使用哪些技巧: 我有以下建议:CodeDOM,Roslyn,T4。
使用T4,您似乎需要为每个文件提供一个模板,我并不是真正想要的,我想这样做的好处是对应用程序服务的任何更改都会自动更新测试版。
我开始沿着CodeDOM的路线前进,但是有人认为这是一项古老的技术,Roslyn也做了同样的事情......而且还有很多......
非常感谢....