diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs
index 685bd16cde..3f8bb56263 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/LanguageProperties.cs
@@ -169,6 +169,15 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
+ ///
+ /// Gets if events explicitly implementing an interface require add {} remove {} regions.
+ ///
+ public virtual bool RequiresAddRemoveRegionInExplicitInterfaceImplementation {
+ get {
+ return false;
+ }
+ }
+
///
/// Gets the token that denotes a possible beginning of an indexer expression.
///
@@ -241,6 +250,15 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
+ ///
+ /// Gets if events explicitly implementing an interface require add {} remove {} regions.
+ ///
+ public override bool RequiresAddRemoveRegionInExplicitInterfaceImplementation {
+ get {
+ return true;
+ }
+ }
+
public override string ToString()
{
return "[LanguageProperties: C#]";
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/CodeGenerator.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/CodeGenerator.cs
index 28ea7f15b0..e5f4221c29 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/CodeGenerator.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/CodeGenerator.cs
@@ -453,6 +453,13 @@ namespace ICSharpCode.SharpDevelop.Dom.Refactoring
EventDeclaration ed = ConvertMember(e, context);
if (explicitImpl) {
ed.InterfaceImplementations.Add(new InterfaceImplementation(interfaceReference, ed.Name));
+
+ if (context.ProjectContent.Language.RequiresAddRemoveRegionInExplicitInterfaceImplementation) {
+ ed.AddRegion = new EventAddRegion(null);
+ ed.AddRegion.Block = CreateNotImplementedBlock();
+ ed.RemoveRegion = new EventRemoveRegion(null);
+ ed.RemoveRegion.Block = CreateNotImplementedBlock();
+ }
}
ed.Modifier = modifier;
nodes.Add(ed);