diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/OverrideToStringCompletionData.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/OverrideToStringCompletionData.cs
index 911ea59cfe..dcdc3a5491 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/OverrideToStringCompletionData.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/OverrideToStringCompletionData.cs
@@ -138,6 +138,7 @@ namespace CSharpBinding.Completion
}
foreach (var p in sourceType.GetProperties().Where(prop => prop.CanGet && !prop.IsIndexer
+ && prop.IsAutoImplemented()
&& prop.IsStatic == sourceType.GetDefinition().IsStatic
&& prop.ReturnType != null)) {
yield return new PropertyOrFieldWrapper(p) { Index = i };
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/InsertCtorSnippetRefactoring.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/InsertCtorSnippetRefactoring.cs
index e7d203cae9..1e7a849b59 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/InsertCtorSnippetRefactoring.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/InsertCtorSnippetRefactoring.cs
@@ -83,6 +83,7 @@ namespace CSharpBinding.Refactoring
}
foreach (var p in resolvedSourceType.GetProperties().Where(prop => prop.CanSet && !prop.IsIndexer
+ && prop.IsAutoImplemented()
&& prop.IsStatic == sourceType.IsStatic
&& prop.ReturnType != null)) {
yield return new PropertyOrFieldWrapper(p) { Index = i };
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/RefactoringExtensions.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/RefactoringExtensions.cs
new file mode 100644
index 0000000000..b24086bb6a
--- /dev/null
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/RefactoringExtensions.cs
@@ -0,0 +1,30 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+
+using System;
+using ICSharpCode.NRefactory.TypeSystem;
+
+namespace CSharpBinding.Refactoring
+{
+ ///
+ /// Some extensions related to refactoring features.
+ ///
+ public static class RefactoringExtensions
+ {
+ ///
+ /// Checks whether a property is auto-implemented (has only "get; set;" definitions).
+ ///
+ /// Property to check
+ /// True if auto-implemented, false otherwise.
+ public static bool IsAutoImplemented(this IProperty property)
+ {
+ if (property == null)
+ throw new ArgumentNullException("property");
+
+ if (property.IsAbstract)
+ return false;
+
+ return property.CanGet && !property.Getter.HasBody && property.CanSet && !property.Setter.HasBody;
+ }
+ }
+}