9

Ben StructureMap kullanan mevcut projeye webApi.HelpPage alanı ve görünümleri eklemek için buraya talimatları takip - ama/Yardım url erişirken:StructureMap İstisna bir WebAPI projeye WebApi.HelpPage ekledikten sonra

StructureMap Exception Code: 202 No Default Instance defined for PluginFamily System.Web.Http.HttpRouteCollection, System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 

Yani StructureMap yapılandırmak şey eksik:

ObjectFactory.Configure(x => x.Scan(scan => 
      { 
       scan.TheCallingAssembly(); 
       scan.AssembliesFromApplicationBaseDirectory(); 
       scan.AddAllTypesOf<IHttpModule>(); 
       scan.WithDefaultConventions(); 
      })); 

kimse doğru yönde bir StructureMap acemi işaret edebilir?

+0

Bu hata github üzerinde çok devs stuctureMap bildirilmiştir - Hoepfully onlar düzeltme ile güncellenir: https: // github.com/webadvanced/Structuremap.MVC4/issues/6 – nathfy

cevap

8

Ben başarı ile, benim Sicil aşağıdaki kullandı:

For<HelpController>().Use(ctx => new HelpController()); 
+0

teşekkürler - biz api dokümantasyon ve test için şimdi http://swagger.io/ kullanarak taşıdığınız - ama bu StructureMap ile acemi olmak, diğerlerine – nathfy

+0

Teşekkür yardımcı olur, gönderiniz bana çok yardımcı –

4

Montaj tarayıcınızdan System.Web. * Derlemeleri atladığınızdan emin olun.

ObjectFactory.Configure(x => x.Scan(scan => 
    { 
     scan.TheCallingAssembly(); 
     scan.AssembliesFromApplicationBaseDirectory(assembly => !assembly.FullName.StartsWith("System.Web")); 
     scan.AddAllTypesOf<IHttpModule>(); 
     scan.WithDefaultConventions(); 
    })); 

Bu bir hatadır ve ikimiz de Gructureub of StructureMap üzerinde yorum yaptık. Umarım gelecekte buna ihtiyacımız olmayacak, ama şimdilik bu bir çözüm.

+0

Bu bir çekicilik gibi çalıştı. Ben olurdu sadece öneri (siz hariç tutulduğunu birçok derleme, sahip durumda), yani ayrı bir çağrıda dışlanan meclisleri ayırmaktır - ("System.Web") scan.ExcludeNamespace; – mirezus

+0

Bu benim için hiç işe yaramıyor. Seeking27'nin önerisini kullanmam gerek. – Echiban

+1

Lütfen bunun temel montaj isimleriyle bir MVC 4 web uygulaması için olduğunu unutmayın. Farklı bir şey (MVC 5 veya MVC 6) kullanıyorsanız, sen Millage değişebilir. Bunun için –

6

Aynı problemi de yaşadım. Sorun olarak bulduğum şey, HelpController'da iki kurucu bulunmasıydı. Bir HttpConfiguration ve bir GlobalConfiguration alır başka bir alır. StructureMap'i, Http yapıcısını özel yaparak GlobalConfiguration yapıcısını çağırmaya zorladım.

public HelpController() 
     : this(GlobalConfiguration.Configuration) 
    { 
    } 

    private HelpController(HttpConfiguration config) 
    { 
     Configuration = config; 
    } 

Bu, hile yapmak gibi görünüyordu. StructureMap 3.x'te

İlgili konular