Я следую учебному пособию и не могу понять, что я сделал неправильно. Идея состоит в том, чтобы создать PreApplicationStartMethod
с помощью метода Register.
Я создаю проект библиотеки классов (модули) и изменяю класс следующим образом:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
[assembly: PreApplicationStartMethod(typeof(Modules.LogModule), "Register")]
namespace Modules
{
public class LogModule : IHttpModule
{
public void Dispose()
{
Debug.Write("Dispose ran");
}
public void Init(HttpApplication context)
{
Debug.Write("Init ran");
}
}
}
В обычном MVC 5 проект построен в VS 2013, под Global.asax у меня есть
public class MvcApplication : System.Web.HttpApplication
{
public static void Register()
{
HttpApplication.RegisterModule(typeof(Modules.LogModule));
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
, но я получаю ошибку
Метод, указанный в модулях PreApplicationStartMethodAttribute на сборке, Версия = 1.0 .0.0, Культура = нейтральная, PublicKeyToken = null 'не может быть разрешена. Тип: 'Modules.LogModule', MethodName: 'Регистрация'. Убедитесь, что типом является publi c, а метод publi c и stati c (Shared в Visual Basi c).
Я видел несколько статей, но они у меня нет точно такой же проблемы, и другие решения, кажется, начинаются до определенного события, однако я не могу достичь какого-либо события.