違いbetweeen spsite.features.add(…)およびspweb.features.add(…)
-
16-10-2019 - |
質問
feature1という名前の機能を作成しました。 Feature1はSharePointサイトでアクティブになります。次のコードを含むWebパーツを作成します。
SPSite site = new SPSite("http://intranet/site1");
SPWeb web = site.OpenWeb();
SPFeatureDefinition feature = SPFarm.Local.FeatureDefinitions("Feature1");
サイト1のみをアクティブにするには、Webパーツを変更する必要があります。
使用する必要がありますか? site.features.add(feature.id)またはweb.features.add(feature.id)
2つの指示の違いは何ですか?
解決
オブジェクトモデルでは、SPSiteはサイトコレクションですが、SPWEBはサイトです。はい、少し混乱しています。
したがって、サイトレベル(サイト収集レベルではなく)でアクティブ化する必要がある機能がある場合は、コードがWebを呼び出すSPWEBを使用する必要があります。
他のヒント
違いは、機能の範囲であり、機能の内容に依存します。これがこれについて素材を読むためのスターターです:
if (feature.Scope == SPFeatureScope.Web)
web.Features.Add(feature.Id)
else if (feature.Scope == SPFeatureScope.Site)
site.Features.Add(feature.Id)
あなたの質問に基づいたルイス
サイト1のみでfeature1をアクティブにするには、Webパーツを変更する必要があります
使用する必要があります
web.Features.Add(feature.Id);
所属していません sharepoint.stackexchange