私は愚かにも金曜日の仕事で何か新しいことを試みることにしました!
そこで、NuGetを使用してNinject.Web.Mvc2.2.xxを.NetMVC2プロジェクトに追加しました。
Global.asax.csを変更しました
using System.Web.Mvc;
using System.Web.Routing;
using IntegraRecipients;
using Mailer;
using Ninject;
using Ninject.Web.Mvc;
using Ninject.Modules;
namespace WebMailer
{
public class MvcApplication : NinjectHttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Mail", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected override void OnApplicationStarted()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
protected override IKernel CreateKernel()
{
return new StandardKernel(new INinjectModule[] { new MailModule()});
}
internal class MailModule : NinjectModule
{
public override void Load()
{
Bind<IMailing>().To<Mailing>();
Bind<IMailingContext>().To<MailingContext>();
Bind<IRecipientContext>().To<RecipientContext>();
}
}
}
}
そして私はそのようなコントローラーを作成しました...
using System.Linq;
using System.Web.Mvc;
using WebMailer.Models;
namespace WebMailer.Controllers
{
[ValidateInput(false)]
public class MailController : Controller
{
private readonly IMailingContext _mailContext;
private readonly IRecipientContext _integraContext;
public MailController(IMailingContext mail,IRecipientContext integra)
{
_mailContext = mail;
_integraContext = integra;
}
public ActionResult Index()
{
return View(_mailContext.GetAllMailings().Select(mailing => new MailingViewModel(mailing)).ToList());
}
}
}
しかし、コントローラーはまだそれを主張しています
タイプまたは名前空間の名前'IRecipientContext'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
と
タイプまたは名前空間の名前'IMailingContext'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
私のグーグルフーは私に失敗しました、そして私はこれがただのばかげたタイプミス/行方不明のことであることを本当に望んでいます
前もって感謝します
P