From 829eca87bd2bb8d6862be71b64c48375838fa713 Mon Sep 17 00:00:00 2001 From: Iain McCoy Date: Fri, 26 Aug 2005 12:11:30 +0000 Subject: 2005-08-26 Iain McCoy * 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 svn path=/trunk/mcs/; revision=48887 --- mcs/class/PresentationFramework/ChangeLog | 8 ++++++++ .../System.Windows.Serialization/data-classes-builder.pl | 7 ++++++- mcs/class/PresentationFramework/Test/XamlParser.cs | 6 ++++-- 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'mcs/class/PresentationFramework') 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,3 +1,11 @@ +2005-08-26 Iain McCoy + + * 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 * Mono.Windows.Serialization/CodeWriter.cs, 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); -- cgit v1.2.3