【发布时间】:2018-05-16 20:41:28
【问题描述】:
我正在实施自定义远程验证,我需要获取所有控制器,为此我使用了代码:
Type controller = Assembly.GetExecutingAssembly().GetTypes()
.FirstOrDefault(type => type.Name.ToLower() == string.Format("{0}Controller",this.RouteData["controller"].ToString()).ToLower());
但是,问题是我的控制器和 viewModel 位于两个不同的程序集上,因此 Assembly.GetExecutingAssembly() 没有得到任何控制器。上面的代码在我有一个视图模型的程序集中。 我怎样才能从不同的组件中获取所有控制器。
【问题讨论】:
-
Assembly.Load()? -
如果你使用 ASP.NET Core,那么有一些类似于应用程序部件的东西可以让你从不同的程序集中加载控制器。docs.microsoft.com/en-us/aspnet/core/mvc/advanced/…
-
我不知道你想要这些类型的目的是什么。
-
康拉德有一个观点......在这种情况下,您将面临XY problem。康拉德建议的另一种选择是MEF
标签: c# .net validation model-view-controller