我发现自己在构造函数中添加了很多依赖项,如下所示:
public class SomeClass() {
private ISomeService _service;
private IAnotherService _anotherService;
public SomeClass(ISomeService service, IAnotherService anotherService) {
_service = service;
_anotherService = anotherService;
}
}
Run Code Online (Sandbox Code Playgroud)
编写它们非常繁琐,我一直在寻找Visual Studio中的代码片段来自动添加一个到构造函数但没有找到一个.
我想要的是:
要么
如果你没有Resharper,你可以在构造函数中添加参数,将赋值写入一个未存在的属性并按CTRL +..这将提示您选择为您自动创建属性或字段.
例如,你有这个类:
public class MyClass
{
public MyClass()
{
}
}
Run Code Online (Sandbox Code Playgroud)
然后将参数添加到构造函数和赋值:
public class MyClass
{
public MyClass(IDependency myDependency)
{
this.myDependency = myDependency;
}
}
Run Code Online (Sandbox Code Playgroud)
然后点击CTRL +.在asignament线上,选择创建字段,你会得到这个:
public class MyClass
{
IDependency myDependency;
public MyClass(IDependency myDependency)
{
this.myDependency = myDependency;
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道以前的版本,但是在 vanilla Visual Studio 2017 中,您实际上可以添加构造函数参数
public SomeClass(ISomeService service)
{
}
Run Code Online (Sandbox Code Playgroud)
然后将光标放在service“快速操作”上,您可以选择Introduce and initialize field _someService哪个将执行您想要的操作:
private readonly ISomeService _someService;
public SomeClass(ISomeService service)
{
_someService = service;
}
Run Code Online (Sandbox Code Playgroud)