C#:方法调用事件?(重构我的代码)



我有一个控制器,其中每个操作共享一个特定的参数。此外,每种方法中的第一行在操作中是通用的。

例如

public ActionResult Add(string routeName) //Common parameter
{
    var object = _repository.Get(routeName); //Common line
    ...
}

我如何重构它,使我能够删除

var object = _repository.Get(routeName);

和/或参数,但仍然能够像以前一样访问它们?

编辑:我正在使用 IoC 将所有存储库注入到类中,因此控制器不可用。

另外,我正在使用路由:

例如

routes.MapRoute("Object-Add", "{foo}/{object}/add", new { controller = "Object", action = "Add" });

这也许也是一个问题吗?

使"var object"成为类的成员,并在构造函数中初始化它。

将此代码放在控制器类的构造函数中,您可以从请求中获取参数并存储在控制器类的字段中

Request.QueryString

只是让它成为类中的一个属性是最好的。我会使用延迟初始化,这样对象就可以在运行时同时创建,但可以在每个操作中重用。

像这样的东西?

public class MyClass
{
   private _YourObject;
   public MyClass(string routeName)
   {
      _yourObject =  _repository.Get(routeName);
   }
   public ActionResult Add()
   {
      ...
   }
}

最新更新