ASP.NET MVC 5 アプリを開発しています。コントローラーのコンストラクターでパラメーターを使用する必要があります。DefaultControllerFactory はそれを解決できず、そこから自分の ControllerFactory を継承しました:
public class ControllerFactoryProvider : DefaultControllerFactory
{
public IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
{
string controllerType = string.Empty;
IController controller = null;
// Read Controller Class & Assembly Name from Web.Config
controllerType = ConfigurationManager.AppSettings[controllerName];
if (controllerType == null)
throw new ConfigurationErrorsException("Assembly not configured for controller " + controllerName);
// Create Controller Instance
IDataTransmitter _dataTransmitter = new DataTransmitter();
controller = Activator.CreateInstance(Type.GetType(controllerType), _dataTransmitter) as IController;
return controller;
}
public void ReleaseController(IController controller)
{
//This is a sample implementation
//If pooling is used to write code to return the object to pool
if (controller is IDisposable)
{
(controller as IDisposable).Dispose();
}
controller = null;
}
Global.asax に登録しました。
ControllerBuilder.Current.SetControllerFactory(新しい ControllerFactoryProvider());
しかし、アプリを実行すると、DefaultControllerFactory を使用してもパラメーターを持つコンストラクターが表示されませんでした。
どこでエラーが発生する可能性がありますか?