我是依賴注入的新手。我在理解如何使用nancyFx引導程序和TinyIoc時遇到問題。我想引用一個依賴關係,但不能忽略如何去做。我似乎無法在任何地方找到正確的信息或者我只是誤解it.This是我的代碼:NancyFx和TinyIoc
public class Startup1
{
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}
}
我的界面:
public interface IPerson
{
string Getname();
}
我的實現:
public class Person : IPerson
{
public string Name { get; set; }
public string Getname()
{
return Name;
}
}
我程序
static void Main(string[] args)
{
Person person = new Person();
person.Name = "Bill";
string uri = "http://localhost:8080/";
using (WebApp.Start<Startup1>(uri))
{
Console.WriteLine("Started");
Console.ReadKey();
Console.WriteLine("Stopping");
}
}
我南希引導程序:
public class MyNancyBoot : DefaultNancyBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
//base.ConfigureApplicationContainer(container);
container.Register<IPerson>(new Person());
}
}
我nancyModule:
public class MyNancyModule : NancyModule
{
public MyNancyModule(IPerson person)
{
Get["/"] = _ =>
{
var x = TinyIoCContainer.Current.Resolve<IPerson>();
return "OK";
};
}
}
這返回一個錯誤MyNancyModule。
var x = TinyIoCContainer.Current.Resolve<IPerson>();
好的,我該如何讓我的人進入MyNancyModule?
你應該不需要做任何事情,南希應該會自動爲你提取這些依賴關係。 –
可以確認我創建了一個虛擬應用程序,並且不需要手動連接接口。我已經添加了一個簡單的項目到我的GIT頁面https://github.com/OnamChilwan/NancyFx-Concept希望非常自我解釋。顯示一個實現了沒有自定義引導的接口使用默認的接口,南希自動檢測到這一點。 –
好的,謝謝我想要一個自定義Bottstrapper的原因,因爲在我的其他項目中啓動nancy需要很長時間。 –