C#:关于方法调用事件?(重构我的代码)
我有一个控制器,每个动作共享一个特定的参数。此外,每个方法中的第一行在操作中也是通用的 例如 我如何重构它,使我能够删除它C#:关于方法调用事件?(重构我的代码),c#,refactoring,C#,Refactoring,我有一个控制器,每个动作共享一个特定的参数。此外,每个方法中的第一行在操作中也是通用的 例如 我如何重构它,使我能够删除它 var object = _repository.Get(routeName); 和/或参数,但仍能像以前一样访问它们 编辑: 我使用IoC将我的所有存储库注入到类中,因此控制器有点不可用 此外,我使用的是路线: 例如 这可能也是一个问题吗?将此代码放入控制器类的构造函数中,该参数可以从请求中获取,并存储在控制器类的字段中 Request.QueryString 使“v
var object = _repository.Get(routeName);
和/或参数,但仍能像以前一样访问它们
编辑:
我使用IoC将我的所有存储库注入到类中,因此控制器有点不可用
此外,我使用的是路线:
例如
这可能也是一个问题吗?将此代码放入控制器类的构造函数中,该参数可以从请求中获取,并存储在控制器类的字段中
Request.QueryString
使“var object”成为类的成员,并在构造函数中初始化它。在类中使其成为属性是最好的。我会使用延迟初始化,这样在运行时创建对象的时间通常与创建对象的时间相同,但可以在每个操作中重复使用
public class MyClass
{
private _YourObject;
public MyClass(string routeName)
{
_yourObject = _repository.Get(routeName);
}
public ActionResult Add()
{
...
}
}
路由名称是静态的吗?每次调用都一样,一直都一样,每次都一样?@Lasse:是的,总是一样。不要调用变量“object”。
Request.QueryString
public class MyClass
{
private _YourObject;
public MyClass(string routeName)
{
_yourObject = _repository.Get(routeName);
}
public ActionResult Add()
{
...
}
}