Nop-Fluent+AutoFACモードはASP.NET MVCでの適用シーン

2133 ワード

Fluent+AutoFACモードはASP.NET MVCの適用シーン:
というか、まずIoCとかDependency Injectionとかを紹介するべきですが、私は確かにこれを習って間もないので、ASPに触れていますが.NET久しぶりです.
 
参照autofacを追加することによって、autofacの基本登録を完了し、autofacのaspを完了することに等しい.NetMVC統合.Web.configに追加:
    <httpModules>
      <add name="ContainerDisposal" type="Autofac.Integration.Web.ContainerDisposalModule,Autofac.Integration.Web"/>
      <add name="PropertyInjection" type ="Autofac.Integration.Web.Forms.PropertyInjectionModule,Autofac.Integration.Web"/>
      </httpModules> 

 
 
例えばDependencyRegistrar.cs中
 builder.RegisterType<GeoCountryLookup>().As<IGeoCountryLookup>().InstancePerHttpRequest();
            builder.RegisterType<CountryService>().As<ICountryService>().InstancePerHttpRequest();

 
Globalでasaxでregister Person.
                             
Validationセクション:
先に参照を追加:
Iocを使用しているため、Controllerでもパラメータ付きの方法を使用できるようになりました.
 
 
 
           ModelValidatorProviders.Providers.Add(
                new FluentValidationModelValidatorProvider(new NopValidatorFactory()));
 
   Model      Validator Attribute       
using FluentValidation.Attributes;
[Validator(typeof(NewsItemValidator))]
    public class NewsItemModel : BaseNopEntityModel
    {
        [NopResourceDisplayName("Admin.ContentManagement.News.NewsItems.Fields.Language")]
        public int LanguageId { get; set; }

 
AdminのModelおよびfront WebのModelで
 [Validator(typeof(NewsItemValidator))]
    public class NewsItemModel : BaseNopEntityModel
    {
        public NewsItemModel()
        {
            Tags = new List<string>();
            Comments = new List<NewsCommentModel>();
            AddNewComment = new AddNewsCommentModel();
        }

.. ... ...
詳細については、http://code.google.com/p/autofac/
http://code.google.com/p/autofac/wiki/AspNetIntegration