【问题标题】:Setting properties using Unity XML使用 Unity XML 设置属性
【发布时间】:2011-07-06 03:14:19
【问题描述】:

我想在存储库类中设置实体框架 ObjectContext - ObjectContext 是存储库的属性。

我正在使用 Unity XML 配置:

<register type="IUsersRepository" mapTo="SqlUsersRepository" >
  <property name="MyObjectContext">
    <value value="Per-Request" typeConverter="ObjectContextTypeConverter" />
  </property>
</register>

ObjectContextTypeConverter 解释属性的值 - 在本例中为“Per-Request” - 并使用存储在 HttpContext.Current.Items 中的 ObjectContext(asp.net 中的每个请求集合)。

ObjectContextTypeConverter.ConvertFrom 方法仅在 Global.asax 文件的 Application_Start 方法中加载 Unity 配置时调用一次。然而,当我尝试使用 Unity 解析接口时,不会再次调用 ConvertFrom 方法。

有没有办法解决这个问题?

【问题讨论】:

    标签: unity-container enterprise-library


    【解决方案1】:

    原因是您将其设置为一个值。您可以将其设置为依赖项:

    <property name="MyObjectContext">
        <dependency />
    </property>
    

    并通过注入工厂注入上下文:

    Container.RegisterType<ObjectContext>(
        new InjectionFactory(c => GetTheContextInstance()));
    

    【讨论】:

    • 您实际上可以将其缩短为 。如果未指定其他内容,则假定依赖项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2023-03-05
    • 2019-05-12
    • 1970-01-01
    相关资源
    最近更新 更多