我是依赖注入的新手。我在理解如何使用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需要很长时间。 –