我创建了一个PowerShell脚本:
我想在C#中将其实现为FeatureActivated事件中具有功能事件接收器的功能。我在第一步中遇到了第一个问题(可能还有更多问题)。在尝试了解如何从我自己的C#获取SPIisWebServiceApplicationPool一段时间后,我反编译了Microsoft.SharePoint.Powershell以了解如何实现Get-SPServiceApplicationPool cmdlet,并通过访问Microsoft.SharePoint程序集中的SPIisWebApplicationSettings来完成。它使用SPIisWebApplicationSettings.Default.ApplicationPools枚举。该类标记为内部,并且通过在Microsoft.SharePoint程序集中包含InternalsVisibleTo属性,允许从Microsoft.SharePoint.Powershell程序集访问它。
因此,如果没有黑客攻击并重新编译Microsoft.SharePoint程序集以使我的程序集InternalsVisibleTo访问并且不在我的功能中托管PowerShell,我如何检查SPIisWebServiceApplicationPool是否存在,如果存在则将其删除然后创建新的SPIisWebServiceApplicationPool?此外,使用反射来访问内部类是不可取的...我正在寻找我在SharePoint API中缺少的东西,这将让我这样做。