Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC虚拟操作结果_C#_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

C# ASP.NET MVC虚拟操作结果

C# ASP.NET MVC虚拟操作结果,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有一个开源的ASP.NET MVC 5应用程序,我正试图使其尽可能可配置和可扩展 它有一套核心控制器、服务等。。。我把它们都做成了分部类,所以人们可以很容易地扩展它们 我现在正在考虑将控制器中的所有ActionResults都虚拟化,以允许用户在希望包含自定义代码并保留核心方法时覆盖它们 如果我这样做,用户能够覆盖控制器上的单个ActionResult还是必须覆盖所有ActionResult?如果您使用虚拟方法,例如 public virtual void DoSomething(){}

我有一个开源的ASP.NET MVC 5应用程序,我正试图使其尽可能可配置和可扩展

它有一套核心控制器、服务等。。。我把它们都做成了分部类,所以人们可以很容易地扩展它们

我现在正在考虑将控制器中的所有ActionResults都虚拟化,以允许用户在希望包含自定义代码并保留核心方法时覆盖它们


如果我这样做,用户能够覆盖控制器上的单个ActionResult还是必须覆盖所有ActionResult?

如果您使用虚拟方法,例如

public virtual void DoSomething(){} 
然后,它们可以只覆盖一个方法,而保留其余的方法,因为我们不处理抽象类


另外,您正在谈论覆盖控制器的操作吗?ActionResult是操作的返回类型,它已经是可扩展的。

这实际上取决于新添加的内容。如果用户覆盖向某个操作添加了新的内容,则其他操作可能不会更改,或者需要更改以保持添加的更改。