Home
Manage Your Code
Snippet: FeatureReceiver to add items to web.config (C#)
Title: FeatureReceiver to add items to web.config Language: C#
Description: This code is taken complete from Ted Pattison's blog: http://blog.tedpattison.net/Lists/Posts/Post.aspx?List=80e51818%2D7b98%2D41d8%2Db313%2D955977ecd68f&ID=4 Views: 850
Author: Neil Richards Date Added: 4/15/2008
Copy Code  
1public class FeatureReceiver : SPFeatureReceiver 
2{
3
4	  public override void FeatureActivated(SPFeatureReceiverProperties properties)
5	  {
6		  SPSite site = (SPSite)properties.Feature.Parent;
7		  SPWebApplication WebApp = site.WebApplication;
8		  foreach (ModificationEntry modEntry in Entries)
9		  {
10			 WebApp.WebConfigModifications.Add(CreateModification(modEntry));
11		  }
12		  WebApp.WebService.ApplyWebConfigModifications();
13	  }
14
15	  public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
16	  {
17		  SPSite site = (SPSite)properties.Feature.Parent;
18		  SPWebApplication WebApp = (SPWebApplication)site.WebApplication;
19		  foreach (ModificationEntry modEntry in Entries)
20		  {
21			  WebApp.WebConfigModifications.Remove(CreateModification(modEntry));
22		  }
23		  WebApp.WebService.ApplyWebConfigModifications();
24	  }
25
26	  private struct ModificationEntry
27	  {
28		  public string Name;
29		  public string XPath;
30		  public string Value;
31		  public SPWebConfigModification.SPWebConfigModificationType ModType;
32		  // parameterized contructor
33
34		  public ModificationEntry(string Name, string XPath, string Value, SPWebConfigModification.SPWebConfigModificationType ModType)
35		  {
36			  // intialize structure instances
37			  this.Name = Name;
38			  this.XPath = XPath;
39			  this.Value = Value;
40			  this.ModType = ModType;
41		  }
42	  }
43
44	  private ModificationEntry[] Entries = 
45		{
46	
47			new ModificationEntry( 
48			"mpaQuickfindServiceUrl",
49			"configuration/appSettings",
50			"quickfindService.aspx", 
51			 SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode),
52	
53			new ModificationEntry( 
54			"mpaQuickfindListGUID",
55			"configuration/appSettings",
56			"39CDA74E-F23A-4ED2-85D4-46C8A8D81A67", 
57			SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode),
58		
59			new ModificationEntry( 
60			"mpaQuickfindNameField",
61			"configuration/appSettings",
62			"Title", 
63			SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode),
64					
65			new ModificationEntry( 
66			"mpaQuickfindSynonymField",
67			"configuration/appSettings",
68			"synonyms", 
69			SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute),
70					
71			new ModificationEntry( 
72			"mpaQuickfindOfficeField",
73			"configuration/appSettings",
74			"OfficeName", 
75			SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode),
76					
77			new ModificationEntry( 
78			"mpaQuickfindGlobalFieldValue",
79			"configuration/appSettings",
80			"Global", 
81			SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode),
82		
83			new ModificationEntry( 
84			"mpaQuickfindTransformLocation",
85			"configuration/appSettings",
86			"xml/QuickfindTransform.xslt", 
87			SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode),
88		};
89
90	  private SPWebConfigModification CreateModification(ModificationEntry modEntry)
91	  {
92		  // create and return SPWebConfigModification object
93		  SPWebConfigModification modification;
94		  modification = new SPWebConfigModification(modEntry.Name, modEntry.XPath);
95		  modification.Owner = "test";
96		  modification.Sequence = 0;
97		  modification.Type = modEntry.ModType;
98		  modification.Value = modEntry.Value;
99		  return modification;
100	  }
101
102	  public override void FeatureInstalled(SPFeatureReceiverProperties properties) { }
103	  public override void FeatureUninstalling(SPFeatureReceiverProperties properties) { }
104}