Spsite.Features.Add(...)和SpWeb.features.add(...)之间的区别 -- feature-activation 领域 sharepoint 相关 的问题

Difference betweeen SPSite.Features.Add(…) and SPWeb.Features.Add(…)


简体版||繁體版
1
vote

问题

中文

我已创建一个名为feature1的功能。 Feature1在SharePoint站点中激活。我创建一个包含以下代码的Web部件。

  SPSite site = new SPSite("http://intranet/site1");  SPWeb web = site.OpenWeb();  SPFeatureDefinition feature = SPFarm.Local.FeatureDefinitions("Feature1");   

我需要修改Web部件以仅在Site1中激活Feature1。

我应该使用吗? site.features.add(featupte.id) 或者 web.features.add(featupte.id)

是什么两个指令之间的差异?

英文原文

I have created a Feature named Feature1. Feature1 is activated in a SharePoint site. I create a Web Part that contains the following code.

SPSite site = new SPSite("http://intranet/site1");  SPWeb web = site.OpenWeb();  SPFeatureDefinition feature = SPFarm.Local.FeatureDefinitions("Feature1"); 

I need to modify the Web Part to activate Feature1 in Site1 only.

Should I use? site.Features.Add(feature.Id) or web.Features.Add(feature.Id)

Whats the difference between the two instructions?

  

回答列表

2
 
vote
vote
最佳答案
 

在对象模型中,spsite是一个站点集合,而spweb是一个站点。是的,有点令人困惑。

所以如果您有一个需要在站点级别(不是网站集级别)的功能,那么您希望使用您的代码调用Web的SPWeb。

 

In the object model, an SPSite is a Site Collection, whereas an SPWeb is a site. Yes, it is a little confusing.

So if you have a feature that needs to be activated at the Site level (not Site Collection level), then you want to use the SPWeb, which your code calls web.

 
 
2
 
vote

差异是该功能的范围,这取决于特征的内容。这是一个用于阅读材料的起动器:

http://weblogs.asp.net/mever/archive/2007/05/03/sharepoint-features-e103/scope-and-other-info.aspx

 

The difference is the scope of the Feature, which depends on the content of the feature. Here's a starter for reading material about this:

http://weblogs.asp.net/soever/archive/2007/05/03/sharepoint-features-elements-scope-and-other-info.aspx

 
 
2
 
vote
  if (feature.Scope == SPFeatureScope.Web)  web.Features.Add(feature.Id) else if (feature.Scope == SPFeatureScope.Site)  site.Features.Add(feature.Id)   
 
if (feature.Scope == SPFeatureScope.Web)  web.Features.Add(feature.Id) else if (feature.Scope == SPFeatureScope.Site)  site.Features.Add(feature.Id) 
 
 
1
 
vote

luis基于您的问题

我需要修改Web部件以在Site1中激活feature1

你应该使用
web.Features.Add(feature.Id);

 

Luis based on your question

I need to modify the Web Part to activate Feature1 in Site1 only

You should use
web.Features.Add(feature.Id);

 
 

相关问题

0  无法部署自定义内容类型  ( Cant deploy custom content type ) 
我在我的功能中有内容类型,当我尝试调试我的功能时,我收到以下错误: Error occurred in deployment step 'Activate Features': The content type with Id 0x01005B614C2D37A841DE8D1739C2A6ECDF82 def...

0  SharePoint 2010错误添加功能事件接收器  ( Sharepoint 2010 error adding a feature event receiver ) 
我想添加一个功能事件接收器,将WebPart添加到页面, 我遵循这个 link 但是当我尝试部署它时,我会仔细阅读以下错误: 部署步骤中发生错误"激活功能" :程序集 实现ASP.NET Web部件,并安装到部分受信任的内容中 必须使用诸如bin目录等位置 allarpartialetrustedc...

0  即使功能已停用,也会应用自定义委托  ( Custom delegate is applied even if the feature is deactivated ) 
我对一个问题有一个问题。 情况: 我有一个农场范围的功能,使用此功能我部署了委托控制(XML文件),此文件是指CS代码。 所以我已经将该文件添加到我部署解决方案的解决方案中,我设置了不自动激活的解决方案。因此,当我部署解决方案时,它被取消激活,但我确实看到我的自定义委托控制使用。 是奇怪的,无论是激活的功能是否激活,...

2  创建站点列(查找类型)  ( Create site column lookup type ) 
是有没有创建网站列(查找)的任何实体(已验证的)方法,其中列表GUID未知? 我认为这是一个功能激活踢的地方;通过其名称获取查找列表,然后使用GUID创建查找。 ...

3  使用.wsp将.dll部署到Web应用程序bin文件夹使用.wsp失败功能recevier  ( Deploying dlls to the web application bin folder using wsp fails with feature ) 
使用.wsp将.dll部署到bin目录时,我的功能接收器似乎在部署阶段吹来,因为它们无法找到我的功能接收器的相关代码。 如何处理这个? ...

0  如何使用代码配置摘要链接Web部件的样式和布局?  ( How do i configure styles and layout of a summary link web part using code ) 
我已成功添加了摘要链接Web部件作为一个功能,并希望配置它的样式和布局,包括: 新链接的默认样式 集团标题样式 组的列数 我还想向Web部件添加两个新组。 在部署期间将Web部件作为功能安装Web部件时,我需要执行此操作。 任何引线都会真正有所帮助。 ...

0  激活实现SpFeaturereceiver的功能时访问拒绝?  ( Access denied when activating features implementing spfeaturereceiver ) 
我们开发了几种实现SpFeatureCeiver接口的功能。当在开发环境中尝试它时,首先失败,直到我找到来自msdn 的脚本: function Set-RemoteAdministratorAccessDenied-False() { [System.Reflection.Assembly]::L...

1  featureactivated()不绑定两个植入性receiverdefinitions  ( Featureactivated not binding two speventreceiverdefinitions ) 
我有一个我在oneet.xml中放置的功能,以便在创建网站集时使其活动。该功能包含两个权限组的事件接收器定义。一个是用户添加的,另一个是用户删除。我的问题是,当我创建新的网站时,我发现激活的功能,但只有Exvery Receiver定义为用户添加绑定,要绑定我必须手动重新激活该功能的其他定义。 我的代码是: pu...

1  功能未激活  ( Feature not activating ) 
我有一个空的SharePoint解决方案,其中我添加了一个事件receiver,它尝试在SharePoint Farm创建新的诊断类别。要测试我在FeatureActivated方法和F5调试中设置一个断点,但它不会被命中。我是使用错误的方法还是错过了一个概念? ...

0  使用特征接收器将目录添加到Web应用程序文件夹  ( Using a feature receiver to add a directory to the web applications folder ) 
想知道有人是否知道如何使用特征事件接收器(FeatureaCivated)在IIS中将目录/文件夹添加到Web应用程序文件夹中。 任何帮助感谢。 ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有