diff options
3 files changed, 18 insertions, 3 deletions
diff --git a/mcs/class/PresentationFramework/ChangeLog b/mcs/class/PresentationFramework/ChangeLog index 1cb6f0dca3f..e45700bbf06 100644 --- a/mcs/class/PresentationFramework/ChangeLog +++ b/mcs/class/PresentationFramework/ChangeLog @@ -1,5 +1,13 @@ 2005-08-26 Iain McCoy <iain@mccoy.id.au> + * System.Windows.Serialization/data-classes-builder.pl: tighten up + access controls for members that don't exist in microsoft's impl + (internal access only is appropriate for these members) + * Test/XamlParser.cs: use reflection to access the newly tightened-up + members + +2005-08-26 Iain McCoy <iain@mccoy.id.au> + * Mono.Windows.Serialization/CodeWriter.cs, Mono.Windows.Serialization/ParserToCode.cs: renamed CodeWriter to ParserToCode in order to more closely parallel diff --git a/mcs/class/PresentationFramework/System.Windows.Serialization/data-classes-builder.pl b/mcs/class/PresentationFramework/System.Windows.Serialization/data-classes-builder.pl index d2ebd2e8b32..ee40a19069b 100644 --- a/mcs/class/PresentationFramework/System.Windows.Serialization/data-classes-builder.pl +++ b/mcs/class/PresentationFramework/System.Windows.Serialization/data-classes-builder.pl @@ -186,8 +186,13 @@ for $class (keys %classes) { $propname = substr($prop, index($prop, " ") + 1); $fieldname = "_$propname"; + if ($propname =~ m/^[a-z]/) { + $access = "internal"; + } else { + $access = "public"; + } - print X "\n\tpublic $proptype $propname {\n"; + print X "\n\t$access $proptype $propname {\n"; print X "\t\tget { return $fieldname; }\n"; print X "\t}\n"; print X "\n\tinternal void set$propname($proptype v) {\n"; diff --git a/mcs/class/PresentationFramework/Test/XamlParser.cs b/mcs/class/PresentationFramework/Test/XamlParser.cs index 7399c5b93ec..32a1a4b6543 100644 --- a/mcs/class/PresentationFramework/Test/XamlParser.cs +++ b/mcs/class/PresentationFramework/Test/XamlParser.cs @@ -134,7 +134,8 @@ public class XamlParserTest { n = getNextNode(p); Assert.IsTrue(n is XamlElementStartNode, "B1"); Assert.AreEqual(0, n.Depth, "B2"); - Assert.AreEqual("nnn", ((XamlElementStartNode)n).name, "B3"); + string name = (string)n.GetType().GetProperty("name", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(n, null); + Assert.AreEqual("nnn", name, "B3"); Assert.AreEqual(((XamlElementStartNode)n).ElementType, typeof(ConsoleApp), "B4"); n = getNextNode(p); @@ -208,7 +209,8 @@ public class XamlParserTest { n = getNextNode(p); Assert.IsTrue(n is XamlElementStartNode, "C1"); Assert.AreEqual(1, n.Depth, "C2"); - Assert.AreEqual("XXX", ((XamlElementStartNode)n).name, "C3"); + string name = (string)n.GetType().GetProperty("name", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(n, null); + Assert.AreEqual("XXX", name, "C3"); Assert.AreEqual(((XamlElementStartNode)n).ElementType, typeof(ConsoleWriter), "C4"); n = getNextNode(p); |