Ami*_*abh 15 c# ninject asp.net-mvc-3
我正在使用Ninject 2和Asp.Net MVC 3.我有以下模块.
public class ServiceModule : NinjectModule
{
public override void Load()
{
//I need to get the 'configHelper' from Ninject Container.
IConfigHelper configHelper = ResolveConfigHelperHere();
Bind<IMyService>().To<MyServiceImpl>().WithConstructorArgument("myArg", configHelper.MyProperty);
}
}
Run Code Online (Sandbox Code Playgroud)
我们如何获得已经在Ninject模块中绑定的'IConfigHelper'实例?
Dar*_*rov 17
var helper = Kernel.Get<IConfigHelper>();
Bind<IMyService>().To<MyServiceImpl>().WithConstructorArgument(
"myArg",
helper.MyProperty
);
Run Code Online (Sandbox Code Playgroud)
这是一个完整的例子:
public interface IConfigHelper
{
string MyProperty { get; set; }
}
public class ConfigHelper : IConfigHelper
{
public string MyProperty { get; set; }
}
public interface IMyService
{
}
public class MyServiceImpl : IMyService
{
public MyServiceImpl(string myArg)
{
}
}
public class HelperModule : NinjectModule
{
public override void Load()
{
Bind<IConfigHelper>()
.To<ConfigHelper>()
.WithPropertyValue("MyProperty", "foo");
}
}
public class ServiceModule : NinjectModule
{
public override void Load()
{
var helper = Kernel.Get<IConfigHelper>();
Bind<IMyService>()
.To<MyServiceImpl>()
.WithConstructorArgument("myArg", helper.MyProperty);
}
}
class Program
{
static void Main()
{
IKernel kernel = new StandardKernel(
new HelperModule(),
new ServiceModule()
);
var service = kernel.Get<IMyService>();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8516 次 |
最近记录: |