gpt4 book ai didi

sharepoint - 在企业环境中将 global.asax 部署到 sharepoint 2010 以启用统一 DI 容器

转载 作者:行者123 更新时间:2023-12-03 16:39:28 24 4
gpt4 key购买 nike

处理 SharePoint 项目时,我正在尝试将 Unity 用作依赖项注入(inject)容器。

我让这个容器运行的第一个想法是使用 global.asax,如 P&P 的最佳实践中所述:

http://webclientguidance.codeplex.com/releases/view/17134#DownloadId=43305

在这些最佳实践中,他们告诉您手动编辑 global.asax 文件以使其继承 SPUnityHttpApplication。

<%@ Application Language="C#" Inherits="Unity.SharePoint.SPUnityHttpApplication" %>

在企业环境中手动编辑此文件不是一个选项,因为我们有多个环境 (DTAP),并且它们都有多个需要手动步骤的前端服务器。

我找不到通过使用功能或 wsp 或任何东西来部署 global.asax 文件的任何方法,因为 global.asax 位于 Web 应用程序根目录中,而 sharepoint 将其他文件部署到/14 hive 文件夹,所以你不能访问 Web 应用程序根目录。

我研究过的替代方案是 SharePointServiceLocator .这个内置功能几乎可以满足我的需求。但它只能解析具有默认构造函数的类。这样我就不能通过使用构造函数注入(inject)来链接解决我的所有实现。 I found a post如何更改服务定位器以利用统一,但如果您阅读评论,这似乎无法正常工作。

我的问题可以通过修复以下 2 个主要问题中的 1 个来解决:
  • 不要在 global.asax 中安排统一,但是在哪里以及如何?
  • 在 sharepoint 中部署 global.asax?可能的?
  • 最佳答案

    由于问题中描述的部署问题, global.asax 似乎不是最好的解决方案。

    一个可行的解决方案是在 httpmodule 中实现这一点。

    init 方法可用于连接所有内容,因为它是在共享点应用程序启动时调用的。

    httpmodule 可以添加到web.config by a feature receiver

    这样就无需对位于无法使用功能部署到的目录中的 global.asax 进行技巧,并且您拥有所有功能和正确的时间来实例化 DI 容器。

    关于sharepoint - 在企业环境中将 global.asax 部署到 sharepoint 2010 以启用统一 DI 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437483/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com