2016-03-01 40 views
1

我想與JSON.net一起使用nancy,按照我發現註冊依賴關係的兩種方式,但一路讓我到一個InvalidOperationException異常與消息「出錯了當在組合期間嘗試滿足其中一個依賴關係時,確保已經在容器中註冊了所有新的依賴關係,並檢查innerexception以獲取更多詳細信息。「內部執行{「無法解析類型:Nancy.NancyEngine」}。Nancyfx使用Json.net,註冊依賴關係錯誤

我正在使用自託管運行南希和吉普一切真的很簡單,才能夠測試。

public static void Main(string[] args) 
    { 
     try 
     { 
      var host = new NancyHost(new Uri("http://localhost:8888/")); 
      host.Start(); // start hosting 
      Console.ReadKey(); 
      host.Stop(); // stop hosting 
     } 
     catch 
     { 
      throw; 
     } 
    } 

首先我創建了一個customSerializer

public class CustomJsonSerializer : JsonSerializer 
{ 
    public CustomJsonSerializer() 
    { 
     ContractResolver = new CamelCasePropertyNamesContractResolver(); 
     Formatting = Formatting.Indented; 
    } 
} 

,然後我試圖註冊 使用IRegistrations的2種方式:

public class JsonRegistration : IRegistrations 
{ 
    public IEnumerable<TypeRegistration> TypeRegistrations 
    { 
     get 
     { 
      yield return new TypeRegistration(typeof(JsonSerializer), typeof(CustomJsonSerializer)); 
     } 
    } 

    public IEnumerable<CollectionTypeRegistration> CollectionTypeRegistrations { get; protected set; } 
    public IEnumerable<InstanceRegistration> InstanceRegistrations { get; protected set; } 
} 

而且還使用引導程序

public class NancyBootstrapper : DefaultNancyBootstrapper 
{ 

    protected override void ConfigureApplicationContainer(TinyIoCContainer container) 
    { 
     base.ConfigureApplicationContainer(container); 
     container.Register<JsonSerializer, CustomJsonSerializer>(); 
    } 

} 

這意味着當自託管我添加自定義的引導程序

var host = new NancyHost(new Uri("http://localhost:8888/"), new NancyBootstrapper()); 

兩種方式返回相同的錯誤。

回答