Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 16eb9dd

Browse files
fix #438 - WinForms Designer modifies class fields outside designer file
1 parent 7baff72 commit 16eb9dd

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ protected override CodeCompileUnit Parse()
127127

128128
foreach (var field in designerClass.Fields) {
129129
var codeField = new CodeMemberField(cv.Convert(field.Type), field.Name);
130+
codeField.Attributes = GetAccessibility(field);
130131
codeClass.Members.Add(codeField);
131132
}
132133
var codeNamespace = new CodeNamespace(designerClass.Namespace);
@@ -170,6 +171,33 @@ protected override void Write(CodeCompileUnit unit)
170171
MessageService.ShowException(ex);
171172
}
172173
}
174+
175+
MemberAttributes GetAccessibility(IField field)
176+
{
177+
switch (field.Accessibility) {
178+
case Accessibility.None:
179+
case Accessibility.Private:
180+
return MemberAttributes.Private;
181+
break;
182+
case Accessibility.Public:
183+
return MemberAttributes.Public;
184+
break;
185+
case Accessibility.Protected:
186+
return MemberAttributes.Family;
187+
break;
188+
case Accessibility.Internal:
189+
return MemberAttributes.Assembly;
190+
break;
191+
case Accessibility.ProtectedOrInternal:
192+
return MemberAttributes.FamilyOrAssembly;
193+
break;
194+
case Accessibility.ProtectedAndInternal:
195+
return MemberAttributes.FamilyAndAssembly;
196+
break;
197+
default:
198+
throw new ArgumentOutOfRangeException();
199+
}
200+
}
173201

174202
protected override CodeDomLocalizationModel GetCurrentLocalizationModelFromDesignedFile()
175203
{

0 commit comments

Comments
 (0)