首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从激活上下文获取构造函数参数

从激活上下文获取构造函数参数
EN

Stack Overflow用户
提问于 2013-05-06 22:41:54
回答 1查看 208关注 0票数 0

假设我想让一个ProxyFactory创建实例,我需要能够向这个工厂传递一个构造函数参数列表。

代码语言:javascript
复制
public class Foo : ViewModelBase
{
    public Bar MyBar { get; private set; }

    [Inject]
    public Foo(Bar bar)
    {
        MyBar = bar;
    }
}

这是我当前的模块,需要对其进行扩展以传递依赖项,因为这些依赖项可以通过ProxyFactory对象来解析

代码语言:javascript
复制
public class InjectionModuleForConstructorArgsTest : NinjectModule
{
    public override void Load()
    {
        ViewModelProxyFactory proxyFactory = new ViewModelProxyFactory();
        Bind<Foo>().ToMethod(
        ctx =>
        {
            return proxyFactory.CreateViewModelProxy<Foo>();
        });
    }
}

基本上,我想要实现的是以下自动化:

代码语言:javascript
复制
Bind<Foo>().ToMethod(
ctx =>
{
    return proxyFactory.CreateViewModelProxy<Foo>(Kernel.Get<Bar>());
});

你知道这是否可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 18:37:27

在这种情况下,我建议将ViewModelProxyFactory实现为Provider<Foo>,并将Bar注入到provider的构造函数中

代码语言:javascript
复制
public class ViewModelProxyFactory<T> : Provider<T>
{
    public ViewModelProxyFactory(Bar bar) { this.bar = bar; }

    public T CreateInstance(IContext ctx)
    {
        return putYourFactoryCodeHere
    }
}

Bind<Foo>().ToProvider<ViewModelProxyFactory<Foo>>();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16401174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档