From 16eb9ddae28b3e2415df5d17b4f8b0f829a2c451 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 19 Apr 2014 11:45:45 +0200 Subject: [PATCH] fix #438 - WinForms Designer modifies class fields outside designer file --- .../Src/FormsDesigner/CSharpDesignerLoader.cs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs index 48fe3c4d18..29964ee49c 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs @@ -127,6 +127,7 @@ namespace CSharpBinding.FormsDesigner foreach (var field in designerClass.Fields) { var codeField = new CodeMemberField(cv.Convert(field.Type), field.Name); + codeField.Attributes = GetAccessibility(field); codeClass.Members.Add(codeField); } var codeNamespace = new CodeNamespace(designerClass.Namespace); @@ -170,6 +171,33 @@ namespace CSharpBinding.FormsDesigner MessageService.ShowException(ex); } } + + MemberAttributes GetAccessibility(IField field) + { + switch (field.Accessibility) { + case Accessibility.None: + case Accessibility.Private: + return MemberAttributes.Private; + break; + case Accessibility.Public: + return MemberAttributes.Public; + break; + case Accessibility.Protected: + return MemberAttributes.Family; + break; + case Accessibility.Internal: + return MemberAttributes.Assembly; + break; + case Accessibility.ProtectedOrInternal: + return MemberAttributes.FamilyOrAssembly; + break; + case Accessibility.ProtectedAndInternal: + return MemberAttributes.FamilyAndAssembly; + break; + default: + throw new ArgumentOutOfRangeException(); + } + } protected override CodeDomLocalizationModel GetCurrentLocalizationModelFromDesignedFile() {