# Wednesday, August 12, 2009
« Developing Publishing Sites the Smart an... | Main | Neues Notebook? »

Ich hatte das Problem mit einem Feature, welches nur in bestimmten Fällen aktiviert werden soll.

Leider gibt es nur ein acyncrones FeatureActivated Event und kein syncrones FeatureActivating Event, welches unterbrochen werden kann.

 

Es funktioniert aber trotzdem:

   1:         public override void FeatureActivated(SPFeatureReceiverProperties properties)
   2:          {
   3:              try
   4:              {
   5:                  using (SPWeb web = properties.Feature.Parent as SPWeb)
   6:                  {
   7:                      if (...Abfrage...)
   8:                      {
   9:                          web.Features.Remove(properties.Feature.DefinitionId, true);
  10:                          return;
  11:                      }
  12:                  }
  13:              }
  14:              catch (Exception exception)
  15:              {
  16:                  Logger.Current.WriteEntry(exception, Categrory.AttributeInheritance, false);
  17:                  throw exception;
  18:              }
  19:          }

 

Entscheidend sind diese beiden Zeilen:

web.Features.Remove(properties.Feature.DefinitionId, true);
return;