Browse Source

fix #438 - WinForms Designer modifies class fields outside designer file

pull/478/head
Siegfried Pammer 11 years ago
parent
commit
16eb9ddae2
  1. 28
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs

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

@ -127,6 +127,7 @@ namespace CSharpBinding.FormsDesigner @@ -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);
@ -171,6 +172,33 @@ namespace CSharpBinding.FormsDesigner @@ -171,6 +172,33 @@ namespace CSharpBinding.FormsDesigner
}
}
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()
{
SD.Log.Debug("CSharpDesignerLoader.GetCurrentLocalizationModelFromDesignedFile()");

Loading…
Cancel
Save