Spring.NET配置问题
我是一名 Java 开发人员,被迫学习 C#。由于我无法忍受不使用依赖注入容器,所以我尝试在我的项目中配置 Spring.NET。
我的项目在 Visual Studio 中分为两个解决方案:一个用于所有业务逻辑、服务、DAO 等的 ClassLibrary 解决方案,以及一个 Web 应用程序部分(ASP.NET 页面等)。
我发现很有趣的是,我可以通过其代码隐藏有效地将依赖项注入到实际页面中,而使用 JSP 则无法真正做到这一点。但是,我想要的是将 ClassLibrary 解决方案中的服务 (UserService) 注入到 Login.aspx.cs(位于 Webapp 部分)中。
我是否必须在 ClassLibrary 端和 Web.Config 端的 App.Config 中定义 UserService 对象?
I'm a Java developer being forced to learn C#. Since I couldn't stand NOT using a Dependency Injection container, I'm trying to configure Spring.NET in my project.
My project is divided into two solutions in Visual Studio: a ClassLibrary solution for all my business logic, services, DAOs, etc, and a Webapp section (ASP.NET pages, etc).
I found it interesting that I could effectively inject a dependency into an actual page via its code-behind, which I couldn't really do with a JSP. However, what I'm wanting is to inject a service (UserService) from the ClassLibrary solution into the Login.aspx.cs, which is in the Webapp section.
Do I have to define the UserService object in both the App.Config on the ClassLibrary side AND on the Web.Config side?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不可以。您可以使用“程序集”前缀(类似于 Java 中的“类路径”前缀)将 Spring.Net 配置从 DLL 项目(定义 UserService)导入到 Web 项目中。然后,您可以在 Web 项目的 spring 配置中引用 DLL 中定义的所有对象。
不要忘记将包含配置(在 DLL 项目中)的 XML 文件标记为要包含在 DLL 中的资源。
No. You can import a Spring.Net configuration from the DLL project (defining the UserService) into the web project by using the 'assembly' prefix (works like 'classpath' prefix in Java). In your web project's spring config you can then reference all objects defined in the DLL.
Don't forget to mark your XML file containing the configuration (in the DLL project) as a resource to be included in the DLL.
当您运行 ASP.NET 应用程序时,不会使用类库的 app.config。仅考虑 Web 应用程序的 web.config。因此,您可以在 web.config 中声明依赖项:
在 context.xml 中声明依赖项:
最后在后面的代码中声明:
The app.config for the class library is not being used when you run an ASP.NET application. Only the web.config of the web application is taken into account. So in your web.config you could declare the dependency:
and in the context.xml:
and finally in your code behind: