带有泛型的 Unity XML 配置

发布于 2024-08-03 07:07:58 字数 1359 浏览 3 评论 0原文

对于 Unity XML 配置和泛型有点头疼。我有这些文件:

public interface IRepository<T> {}

public class OrderRepository : IRepository { }

public class DispatchOrderProcess
{
     public DispatchOrderProcess(IRepository<Order> repository) { }
}

我想使用 Unity XML 配置将 Order Repository 注入到 DispatchOrderProcess 类中。到目前为止我有这样的事情:

            <type name="OrderRespository" type="Company.Project.Core.Interfaces.IRepository`1, Company.Project.Core" mapTo="Company.Project.Core.Repositories.OrderRepository, Company.Project.Core" />

            <type name="DispatchOrderProccess" type="Company.Project.Core.Interfaces.ISendAlertsProcess, Company.Project.Core" mapTo="Company.Project.Core.Processes.SendAlertsProcess, Company.Project.Core">
                <typeConfig>
                    <constructor>
                        <param name="orderRepository" parameterType="Company.Project.Core.Interfaces.IRepository`1, Company.Project.Core">
                            <dependency name="OrderRespository"/>
                        </param>
                    </constructor>
                </typeConfig>
            </type>
        </types>
    </container>
</containers>

Having a bit of a headache with Unity XML configuration and generics. I have these files:

public interface IRepository<T> {}

public class OrderRepository : IRepository { }

public class DispatchOrderProcess
{
     public DispatchOrderProcess(IRepository<Order> repository) { }
}

I would like to inject the Order Repository into the DispatchOrderProcess class using Unity XML configuration. So far I have something like so:

            <type name="OrderRespository" type="Company.Project.Core.Interfaces.IRepository`1, Company.Project.Core" mapTo="Company.Project.Core.Repositories.OrderRepository, Company.Project.Core" />

            <type name="DispatchOrderProccess" type="Company.Project.Core.Interfaces.ISendAlertsProcess, Company.Project.Core" mapTo="Company.Project.Core.Processes.SendAlertsProcess, Company.Project.Core">
                <typeConfig>
                    <constructor>
                        <param name="orderRepository" parameterType="Company.Project.Core.Interfaces.IRepository`1, Company.Project.Core">
                            <dependency name="OrderRespository"/>
                        </param>
                    </constructor>
                </typeConfig>
            </type>
        </types>
    </container>
</containers>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过气美图社 2024-08-10 07:07:58

...你的问题是?

我最近用泛型做了一些事情,但在语法上遇到了一些问题。显然我需要告诉 Unity T 的类型是什么,比如:

type="Company.Project.Core.Interfaces.IRepository`1 [[System.String, mscorlib version 2.0.0.0...etc]], Company.Project.Core"

这对你有什么帮助吗?

...and your problem is?

I have done some stuff with generics quite recently though and I had some trouble with the syntax. Apparently I neaded to tell unity what the typeof T was, something like:

type="Company.Project.Core.Interfaces.IRepository`1 [[System.String, mscorlib version 2.0.0.0...etc]], Company.Project.Core"

does this help you out in any way?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文