0

我有两个构造函数,第一个可以正常工作,如下所示:

    public ESite(Func<IOrg> unityOrgFactory)
    {
        this.OrFactory = unityOrgFactory; 
        this.Kid = Guid.Empty;
    }
_IoC.RegisterType<IESite, ESite>(); 
IESite eSite = boClass.IoC.Resolve<IESite>();

现在,我需要在运行时传入一个键,所以我像往常一样添加了一个构造函数:

    public ESite(Func<IOrg> unityOrgFactory, Guid kid)
    {
        this.OrFactory = unityOrgFactory;
        this.Kid = kid;
    }

此注册和解析用法的语法?我已经尝试了几个 InjectionConstructor 变体,但无法正确...我错过了一些东西。经过几轮搜索和尝试,是时候提问了!我已经阅读了几篇有关相关主题的帖子...

感谢您的提示!GG

4

1 回答 1

0

一个合理的解决方法(不一定是最佳答案)是通过将注入的参数移动到 InjectionMethod 来解除构造函数的障碍

登记:

// Use InjectionMethod Initializer to free up constructors. http://msdn.microsoft.com/en-us/library/ff953186(v=pandp.50).aspx   new InjectionMethod("Initialize", typeof(Database), "CustomerServices")
        _IoC.RegisterType<IESite, ESite>(
            new InjectionMethod("Initialize", typeof(Func<IOrg>)) 
            );

采用:

        //http://msdn.microsoft.com/en-us/library/ff953186(v=pandp.50).aspx
    [InjectionMethod]
    public void Initialize(Func<IOrg> unityOrgFactory)
于 2013-04-04T12:57:32.080 回答