我想與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());
兩種方式返回相同的錯誤。