You can subscribe to this list here.
2004 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(10) |
Aug
(8) |
Sep
|
Oct
(13) |
Nov
(50) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
(10) |
Apr
(12) |
May
(3) |
Jun
(6) |
Jul
(3) |
Aug
(1) |
Sep
(49) |
Oct
|
Nov
|
Dec
(3) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
(6) |
Dec
(11) |
2007 |
Jan
(1) |
Feb
(6) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(5) |
2008 |
Jan
(5) |
Feb
(6) |
Mar
(25) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Owen R. <exo...@us...> - 2005-07-07 04:20:29
|
Update of /cvsroot/netreflector/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20506 Modified Files: reflector.build Log Message: fixing build label Index: reflector.build =================================================================== RCS file: /cvsroot/netreflector/NetReflector/reflector.build,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** reflector.build 7 Jul 2005 04:12:12 -0000 1.9 --- reflector.build 7 Jul 2005 04:20:20 -0000 1.10 *************** *** 165,170 **** <target name="transform.build.number" > ! <regex pattern="(?'major'\d+)_(?'minor'\d+)_(?'revision'\d+)_(?'build'\d+)" input="${ccnet.label}" /> ! <property name="build.number" value="${major}.${minor}.${revision}.${build}" /> <echo message="Build number: ${build.number}"/> </target> --- 165,169 ---- <target name="transform.build.number" > ! <property name="build.number" value="1.0.0.${ccnet.label}" /> <echo message="Build number: ${build.number}"/> </target> |
From: Owen R. <exo...@us...> - 2005-07-07 04:12:21
|
Update of /cvsroot/netreflector/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17772 Modified Files: reflector.build Log Message: updating build to work with ccnet.label and to output test results as xml Index: reflector.build =================================================================== RCS file: /cvsroot/netreflector/NetReflector/reflector.build,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** reflector.build 11 Mar 2005 13:23:22 -0000 1.8 --- reflector.build 7 Jul 2005 04:12:12 -0000 1.9 *************** *** 19,22 **** --- 19,23 ---- <property name="vil.executable" value="tools\vil\vil.exe" /> <property name="vil.assemblies" value="${core.dll},${test.dll}" /> + <property name="nunit.output" value="Plain"/> <!-- ALL --> *************** *** 106,110 **** <target name="test.unit" depends="compile" description="runs unit tests"> <nunit2> ! <formatter type="Plain" /> <test assemblyname="${build.dir}\${test.dll}"/> </nunit2> --- 107,111 ---- <target name="test.unit" depends="compile" description="runs unit tests"> <nunit2> ! <formatter type="${nunit.output}" /> <test assemblyname="${build.dir}\${test.dll}"/> </nunit2> *************** *** 151,168 **** <!-- FOR RUNNING CCNET AGAINST ITSELF --> <target name="ContinuousIntegration"> ! <ifnot test="${property::exists('label-to-apply')}"> ! <fail message="label-to-apply property not set, so can't create labelled distribution files" /> ! </ifnot> <call target="transform.build.number" /> <call target="createAssemblyInfo" /> ! <call target="all" /> <call target="dist.publish" /> <call target="reporting" /> ! <echo message="CI Run for build number ${label-to-apply} successfully completed" /> </target> <target name="transform.build.number" > ! <regex pattern="(?'major'\d+)_(?'minor'\d+)_(?'revision'\d+)_(?'build'\d+)" input="${label-to-apply}" /> <property name="build.number" value="${major}.${minor}.${revision}.${build}" /> <echo message="Build number: ${build.number}"/> --- 152,169 ---- <!-- FOR RUNNING CCNET AGAINST ITSELF --> <target name="ContinuousIntegration"> ! <if test="${not property::exists('ccnet.label')}"> ! <fail message="ccnet.label property not set, so can't create labelled distribution files" /> ! </if> <call target="transform.build.number" /> <call target="createAssemblyInfo" /> ! <call target="all.ccnet" /> <call target="dist.publish" /> <call target="reporting" /> ! <echo message="CI Run for build number ${ccnet.label} successfully completed" /> </target> <target name="transform.build.number" > ! <regex pattern="(?'major'\d+)_(?'minor'\d+)_(?'revision'\d+)_(?'build'\d+)" input="${ccnet.label}" /> <property name="build.number" value="${major}.${minor}.${revision}.${build}" /> <echo message="Build number: ${build.number}"/> *************** *** 200,204 **** failonerror="false"/> </target> - - </project> \ No newline at end of file --- 201,203 ---- |
From: Owen R. <exo...@us...> - 2005-06-25 01:40:53
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6607/src/NetReflector.Test/Serialisers Modified Files: XmlArraySerialiserTest.cs Log Message: trying to fix failing build due to different hashkey on build server Index: XmlArraySerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlArraySerialiserTest.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** XmlArraySerialiserTest.cs 16 Nov 2004 04:41:18 -0000 1.4 --- XmlArraySerialiserTest.cs 25 Jun 2005 01:40:14 -0000 1.5 *************** *** 48,50 **** } } ! } --- 48,50 ---- } } ! } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-06-25 01:40:34
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6607/src/NetReflector/Serialisers Modified Files: XmlMemberSerialiser.cs XmlTypeSerialiser.cs Log Message: trying to fix failing build due to different hashkey on build server Index: XmlMemberSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlMemberSerialiser.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** XmlMemberSerialiser.cs 7 Apr 2005 04:30:40 -0000 1.9 --- XmlMemberSerialiser.cs 25 Jun 2005 01:40:16 -0000 1.10 *************** *** 1,6 **** - using Exortech.NetReflector.Util; using System; using System.Reflection; using System.Xml; namespace Exortech.NetReflector --- 1,6 ---- using System; using System.Reflection; using System.Xml; + using Exortech.NetReflector.Util; namespace Exortech.NetReflector *************** *** 14,18 **** public XmlMemberSerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) { ! this.member = ReflectorMember.Create(member); this.attribute = attribute; this.instantiator = new DefaultInstantiator(); --- 14,18 ---- public XmlMemberSerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) { ! this.member = Util.ReflectorMember.Create(member); this.attribute = attribute; this.instantiator = new DefaultInstantiator(); *************** *** 64,68 **** else { ! XmlTypeSerialiser serialiser = (XmlTypeSerialiser)attribute.CreateSerialiser(value.GetType()); serialiser.WriteMembers(writer, value); } --- 64,68 ---- else { ! XmlTypeSerialiser serialiser = (XmlTypeSerialiser) attribute.CreateSerialiser(value.GetType()); serialiser.WriteMembers(writer, value); } *************** *** 88,92 **** { throw new NetReflectorException(String.Format(@"Missing Xml node ({0}) for required member ({1}).", ! attribute.Name, member.MemberName)); } } --- 88,92 ---- { throw new NetReflectorException(String.Format(@"Missing Xml node ({0}) for required member ({1}).", ! attribute.Name, member.MemberName)); } } *************** *** 154,156 **** } } ! } --- 154,156 ---- } } ! } \ No newline at end of file Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** XmlTypeSerialiser.cs 19 Jun 2005 00:17:33 -0000 1.8 --- XmlTypeSerialiser.cs 25 Jun 2005 01:40:17 -0000 1.9 *************** *** 1,5 **** using System; using System.Collections; - using System.Collections.Specialized; using System.Reflection; using System.Xml; --- 1,4 ---- *************** *** 42,52 **** public IXmlMemberSerialiser[] MemberSerialisers { ! get ! { if (serialisers == null) { serialisers = InitialiseMemberSerialisers(); } ! return serialisers; } } --- 41,51 ---- public IXmlMemberSerialiser[] MemberSerialisers { ! get ! { if (serialisers == null) { serialisers = InitialiseMemberSerialisers(); } ! return serialisers; } } *************** *** 63,67 **** } } ! return (IXmlMemberSerialiser[]) serialisers.ToArray(typeof(IXmlMemberSerialiser)); } --- 62,66 ---- } } ! return (IXmlMemberSerialiser[]) serialisers.ToArray(typeof (IXmlMemberSerialiser)); } *************** *** 90,100 **** public void ReadMembers(XmlNode node, object instance, NetReflectorTypeTable table) { ! IDictionary childNodes = new ListDictionary(); ! AddChildNodesToDictionary(node.Attributes, childNodes, table); ! AddChildNodesToDictionary(node.ChildNodes, childNodes, table); foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) { ! XmlNode childNode = (XmlNode) childNodes[serialiser.Attribute.Name]; object value = serialiser.Read(childNode, table); if (value != null) --- 89,99 ---- public void ReadMembers(XmlNode node, object instance, NetReflectorTypeTable table) { ! IList childNodes = new ArrayList(); ! AddChildNodes(node.Attributes, childNodes, table); ! AddChildNodes(node.ChildNodes, childNodes, table); foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) { ! XmlNode childNode = GetNodeByName(childNodes, serialiser.Attribute.Name); object value = serialiser.Read(childNode, table); if (value != null) *************** *** 102,109 **** serialiser.SetValue(instance, value); } ! childNodes.Remove(serialiser.Attribute.Name); } ! foreach (XmlNode orphan in childNodes.Values) { table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); --- 101,108 ---- serialiser.SetValue(instance, value); } ! childNodes.Remove(childNode); } ! foreach (XmlNode orphan in childNodes) { table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); *************** *** 111,115 **** } ! private void AddChildNodesToDictionary(IEnumerable nodes, IDictionary childNodes, NetReflectorTypeTable table) { foreach (XmlNode node in nodes) --- 110,114 ---- } ! private void AddChildNodes(IEnumerable nodes, IList childNodes, NetReflectorTypeTable table) { foreach (XmlNode node in nodes) *************** *** 117,127 **** if (node.NodeType == XmlNodeType.Comment) continue; ! if (childNodes.Contains(node.Name)) { table.OnInvalidNode(new InvalidNodeEventArgs(node, "Duplicate node detected: " + node.OuterXml)); } ! childNodes[node.Name] = node; } } } } \ No newline at end of file --- 116,138 ---- if (node.NodeType == XmlNodeType.Comment) continue; ! if (GetNodeByName(childNodes, node.Name) != null) { table.OnInvalidNode(new InvalidNodeEventArgs(node, "Duplicate node detected: " + node.OuterXml)); } ! else ! { ! childNodes.Add(node); ! } } } + + private XmlNode GetNodeByName(IList nodes, string name) + { + foreach (XmlNode node in nodes) + { + if (node.Name == name) return node; + } + return null; + } } } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-06-25 01:40:25
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6607/src/NetReflector Modified Files: InvalidNodeEvent.cs Log Message: trying to fix failing build due to different hashkey on build server Index: InvalidNodeEvent.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/InvalidNodeEvent.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InvalidNodeEvent.cs 15 Apr 2005 04:45:09 -0000 1.1 --- InvalidNodeEvent.cs 25 Jun 2005 01:40:15 -0000 1.2 *************** *** 16,19 **** Message = message; } } ! } --- 16,24 ---- Message = message; } + + public override string ToString() + { + return string.Format("{0}. Node={1}", Message, Node.OuterXml); + } } ! } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-06-19 00:17:42
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22619/src/NetReflector/Serialisers Modified Files: XmlTypeSerialiser.cs Log Message: small fix for incorrectly reporting comment nodes hopefully fixing build Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** XmlTypeSerialiser.cs 12 May 2005 17:09:15 -0000 1.7 --- XmlTypeSerialiser.cs 19 Jun 2005 00:17:33 -0000 1.8 *************** *** 107,112 **** foreach (XmlNode orphan in childNodes.Values) { ! if (orphan.NodeType != XmlNodeType.Comment) ! table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); } } --- 107,111 ---- foreach (XmlNode orphan in childNodes.Values) { ! table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); } } *************** *** 116,119 **** --- 115,120 ---- foreach (XmlNode node in nodes) { + if (node.NodeType == XmlNodeType.Comment) continue; + if (childNodes.Contains(node.Name)) { |
From: Owen R. <exo...@us...> - 2005-06-19 00:17:42
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22619/src/NetReflector.Test/resources Modified Files: TestClass.cs TestInnerClass.cs Log Message: small fix for incorrectly reporting comment nodes hopefully fixing build Index: TestClass.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources/TestClass.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TestClass.cs 22 Oct 2004 12:45:34 -0000 1.6 --- TestClass.cs 19 Jun 2005 00:17:33 -0000 1.7 *************** *** 83,87 **** public static string GetXmlWithSubClass(DateTime date) { ! return TestClass.GetXml(date, @"<inner classType=""sub""><subzero>-40</subzero><name>sub</name><present>here</present></inner>"); } --- 83,87 ---- public static string GetXmlWithSubClass(DateTime date) { ! return TestClass.GetXml(date, @"<inner classType=""sub""><name>sub</name><present>here</present><subzero>-40</subzero></inner>"); } Index: TestInnerClass.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources/TestInnerClass.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TestInnerClass.cs 22 Oct 2004 12:45:34 -0000 1.3 --- TestInnerClass.cs 19 Jun 2005 00:17:33 -0000 1.4 *************** *** 6,33 **** internal class TestInnerClass : ITestClass { - string name; - string missing; - string present = "wuz here"; - [ReflectorProperty("name")] ! public string InnerName ! { ! get { return name; } ! set { name = value; } ! } [ReflectorProperty("missing", Required=false)] ! public string Missing ! { ! get { return missing; } ! set { missing = value; } ! } [ReflectorProperty("present", Required=false)] ! public string Present ! { ! get { return present; } ! set { present = value; } ! } public static TestInnerClass Create() --- 6,17 ---- internal class TestInnerClass : ITestClass { [ReflectorProperty("name")] ! public string InnerName; [ReflectorProperty("missing", Required=false)] ! public string Missing; [ReflectorProperty("present", Required=false)] ! public string Present = "wuz here"; public static TestInnerClass Create() *************** *** 78,80 **** } } ! } --- 62,64 ---- } } ! } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-06-19 00:17:41
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22619/src/NetReflector.Test/Serialisers Modified Files: XmlMemberSerialiserTest.cs Log Message: small fix for incorrectly reporting comment nodes hopefully fixing build Index: XmlMemberSerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlMemberSerialiserTest.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XmlMemberSerialiserTest.cs 22 Oct 2004 12:45:33 -0000 1.5 --- XmlMemberSerialiserTest.cs 19 Jun 2005 00:17:32 -0000 1.6 *************** *** 30,34 **** TestClass target = TestClass.CreateWithSubClass(); string xml = NetReflector.Write(target); ! Assert.AreEqual(TestClass.GetXmlWithSubClass(DateTime.Now), xml); } --- 30,34 ---- TestClass target = TestClass.CreateWithSubClass(); string xml = NetReflector.Write(target); ! Assert.AreEqual(TestClass.GetXmlWithSubClass(target.DateTime), xml); } *************** *** 41,45 **** string xml = NetReflector.Write(target); ! Assert.AreEqual(TestClass.GetXml(target.DateTime, @"<inner classType=""sub""><subzero>-40</subzero><name><![CDATA[<message/>]]><!foo>&quot;</name><present>here</present></inner>"), xml); } --- 41,45 ---- string xml = NetReflector.Write(target); ! Assert.AreEqual(TestClass.GetXml(target.DateTime, @"<inner classType=""sub""><name><![CDATA[<message/>]]><!foo>&quot;</name><present>here</present><subzero>-40</subzero></inner>"), xml); } |
From: Owen R. <exo...@us...> - 2005-05-12 17:09:26
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17995/src/NetReflector.Test Modified Files: NetReflectorTypeTableUnusedNodeTest.cs Log Message: fixed NetReflector so that it stops reporting commented nodes as invalid Index: NetReflectorTypeTableUnusedNodeTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTypeTableUnusedNodeTest.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NetReflectorTypeTableUnusedNodeTest.cs 15 Apr 2005 04:45:09 -0000 1.2 --- NetReflectorTypeTableUnusedNodeTest.cs 12 May 2005 17:09:15 -0000 1.3 *************** *** 53,56 **** --- 53,66 ---- [Test] + public void DoNotRaiseEventIfXmlContainsComments() + { + string xml = TestClass.GetXml(DateTime.Now, string.Format(@"<inner>{0}<!-- foo --></inner>", TestInnerClass.GetInnerXml())); + table.InvalidNode += new InvalidNodeEventHandler(HandleUnusedNode); + serialiser.Read(XmlUtil.ReadNode(xml), table); + + Assert.AreEqual(0, nodes.Count); + } + + [Test] public void DoNotRaiseEventIfXmlDoesNotContainUnnecessaryNodes() { |
From: Owen R. <exo...@us...> - 2005-05-12 17:09:24
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17995/src/NetReflector/Serialisers Modified Files: XmlTypeSerialiser.cs Log Message: fixed NetReflector so that it stops reporting commented nodes as invalid Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** XmlTypeSerialiser.cs 15 Apr 2005 04:45:09 -0000 1.6 --- XmlTypeSerialiser.cs 12 May 2005 17:09:15 -0000 1.7 *************** *** 106,110 **** foreach (XmlNode orphan in childNodes.Values) ! table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); } --- 106,113 ---- foreach (XmlNode orphan in childNodes.Values) ! { ! if (orphan.NodeType != XmlNodeType.Comment) ! table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); ! } } |
From: Neateye <nit...@ao...> - 2005-05-11 06:29:43
|
Call out Gouranga be happy!!! Gouranga Gouranga Gouranga .... That which brings the highest happiness!! |
From: Szymon K. <s.k...@so...> - 2005-04-18 20:24:25
|
Hello Owen and other NetReflectors, Sorry for the delay. Here are some ideas for NetReflector: 1. Allow to deserialize collection properties without setter. It is a common pattern (at least I use it very often) to implement a collection property with a getter only and initialize the collection by the parent class. Would it be possible to modify NetReflector that in such case it will only put deserialized items in the collection using Add or AddRange method? 2. The other area is error reporting. Often it is really hard to find the place where error occurred. I've already found a sample of XmlDocument implementing IXmlPositionInfo on all elements so this information is available at the time the error is found. I've changed the source so this document is used instead of normal one and it worked without problems. Now it is only a matter of extending the NetReflectorException to report line number and position of the error. I can try to code this if you think it's ok. Here is the extended document www.gotdotnet.com/userfiles/XMLDom/extendDOM.zip http://msdn.microsoft.com/library/en-us/cpguide/html/cpconextendingdom.asp?frame=true 3. I was considering implementing serialization to other file formats. I hoped that it will make my files more human readable and cleaner then in XML (more like INI files). I already found some "standards" for that like YAML, OGDL or SDL (here is a whole list http://www.pault.com/pault/pxml/xmlalternatives.html, http://www.gadgetopia.com/2003/06/09/XMLAlternatives.html and here is some rationale to think about http://www-106.ibm.com/developerworks/xml/library/x-sbxml.html) The problem is that none of these formats has a parser in .NET so this adds some additional work to the effort. Besides after reading some discussions (good one here if you are interested http://wiki.apache.org/jakarta-hivemind/NotXMLProposal) I came to a point that XML is not that bad at all (considerering support in many editors and other tools). Maybe you have different opinion on the matter ? That is all I can think off at the moment. I'm using NetReflector for couple of weeks now and it does it work really well. You might be interested that I've compiled it on .NET 2.0 without any problems and it even supports generics. Good job! Best Regards, Szymon Kobalczyk. |
From: Owen R. <exo...@us...> - 2005-04-15 04:45:23
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15960/src/NetReflector.Test Modified Files: NetReflectorTypeTableUnusedNodeTest.cs Log Message: some refactoring of invalid node detection. now also detects duplicates. Index: NetReflectorTypeTableUnusedNodeTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTypeTableUnusedNodeTest.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NetReflectorTypeTableUnusedNodeTest.cs 7 Apr 2005 04:30:37 -0000 1.1 --- NetReflectorTypeTableUnusedNodeTest.cs 15 Apr 2005 04:45:09 -0000 1.2 *************** *** 2,6 **** using System.Collections; using System.Reflection; - using System.Xml; using Exortech.NetReflector.Util; using NUnit.Framework; --- 2,5 ---- *************** *** 24,44 **** [Test] ! public void RaiseUnusedNodeEventIfXmlContainsUnnecessaryNodes() { string xml = TestClass.GetXml(DateTime.Now, string.Format(@"<inner fooz=""bar""><baz/><yaz />{0}</inner>", TestInnerClass.GetInnerXml())); ! table.UnusedNode += new UnusedNodeEventHandler(HandleUnusedNode); serialiser.Read(XmlUtil.ReadNode(xml), table); Assert.AreEqual(3, nodes.Count); ! Assert.AreEqual("fooz", ((XmlNode)nodes[0]).Name); ! Assert.AreEqual("baz", ((XmlNode)nodes[1]).Name); ! Assert.AreEqual("yaz", ((XmlNode)nodes[2]).Name); } [Test] ! public void DoNotRaiseUnusedNodeEventIfXmlDoesNotContainUnnecessaryNodes() { string xml = TestClass.GetXmlWithSubClass(DateTime.Now); ! table.UnusedNode += new UnusedNodeEventHandler(HandleUnusedNode); serialiser.Read(XmlUtil.ReadNode(xml), table); --- 23,60 ---- [Test] ! public void RaiseEventIfXmlContainsUnnecessaryNodes() { string xml = TestClass.GetXml(DateTime.Now, string.Format(@"<inner fooz=""bar""><baz/><yaz />{0}</inner>", TestInnerClass.GetInnerXml())); ! table.InvalidNode += new InvalidNodeEventHandler(HandleUnusedNode); serialiser.Read(XmlUtil.ReadNode(xml), table); Assert.AreEqual(3, nodes.Count); ! Assert.AreEqual("fooz", InvalidNodeName(0)); ! Assert.AreEqual("baz", InvalidNodeName(1)); ! Assert.AreEqual("yaz", InvalidNodeName(2)); ! } ! ! private string InvalidNodeName(int index) ! { ! return ((InvalidNodeEventArgs)nodes[index]).Node.Name; } [Test] ! public void RaiseEventIfXmlContainsDuplicateNodes() ! { ! string xml = TestClass.GetXml(DateTime.Now, string.Format(@"<inner name=""dupe"">{0}<present>dupe</present></inner>", TestInnerClass.GetInnerXml())); ! table.InvalidNode += new InvalidNodeEventHandler(HandleUnusedNode); ! serialiser.Read(XmlUtil.ReadNode(xml), table); ! ! Assert.AreEqual(2, nodes.Count); ! Assert.AreEqual("name", InvalidNodeName(0)); ! Assert.AreEqual("present", InvalidNodeName(1)); ! } ! ! [Test] ! public void DoNotRaiseEventIfXmlDoesNotContainUnnecessaryNodes() { string xml = TestClass.GetXmlWithSubClass(DateTime.Now); ! table.InvalidNode += new InvalidNodeEventHandler(HandleUnusedNode); serialiser.Read(XmlUtil.ReadNode(xml), table); *************** *** 47,58 **** [Test] ! public void ShouldHandleRaisingUnusedNodeEventsIfNoHandlerHasBeenRegistered() { ! table.OnUnusedNode(null); } ! private void HandleUnusedNode(XmlNode node) { ! nodes.Add(node); } --- 63,74 ---- [Test] ! public void ShouldHandleRaisingEventsIfNoHandlerHasBeenRegistered() { ! table.OnInvalidNode(null); } ! private void HandleUnusedNode(InvalidNodeEventArgs args) { ! nodes.Add(args); } |
From: Owen R. <exo...@us...> - 2005-04-15 04:45:22
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15960/src/NetReflector Modified Files: NetReflector.csproj NetReflectorTypeTable.cs Added Files: InvalidNodeEvent.cs Log Message: some refactoring of invalid node detection. now also detects duplicates. --- NEW FILE: InvalidNodeEvent.cs --- using System; using System.Xml; namespace Exortech.NetReflector { public delegate void InvalidNodeEventHandler(InvalidNodeEventArgs args); public class InvalidNodeEventArgs : EventArgs { public readonly XmlNode Node; public readonly string Message; public InvalidNodeEventArgs(XmlNode node, string message) { Node = node; Message = message; } } } Index: NetReflectorTypeTable.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflectorTypeTable.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NetReflectorTypeTable.cs 7 Apr 2005 04:30:39 -0000 1.5 --- NetReflectorTypeTable.cs 15 Apr 2005 04:45:09 -0000 1.6 *************** *** 3,16 **** using System.IO; using System.Reflection; - using System.Xml; using Exortech.NetReflector.Util; namespace Exortech.NetReflector { - public delegate void UnusedNodeEventHandler(XmlNode node); - public class NetReflectorTypeTable : IEnumerable { ! public event UnusedNodeEventHandler UnusedNode; private readonly IInstantiator instantiator; private readonly IDictionary reflectorTypes = new Hashtable(); --- 3,13 ---- using System.IO; using System.Reflection; using Exortech.NetReflector.Util; namespace Exortech.NetReflector { public class NetReflectorTypeTable : IEnumerable { ! public event InvalidNodeEventHandler InvalidNode; private readonly IInstantiator instantiator; private readonly IDictionary reflectorTypes = new Hashtable(); *************** *** 22,26 **** { this.instantiator = instantiator; ! UnusedNode = new UnusedNodeEventHandler(NullHandler); } --- 19,23 ---- { this.instantiator = instantiator; ! InvalidNode = new InvalidNodeEventHandler(NullHandler); } *************** *** 117,126 **** } ! public void OnUnusedNode(XmlNode orphan) { ! UnusedNode(orphan); } ! private void NullHandler(XmlNode node) {} } --- 114,123 ---- } ! public void OnInvalidNode(InvalidNodeEventArgs args) { ! InvalidNode(args); } ! private void NullHandler(InvalidNodeEventArgs args) {} } Index: NetReflector.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflector.csproj,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** NetReflector.csproj 7 Mar 2005 05:46:06 -0000 1.8 --- NetReflector.csproj 15 Apr 2005 04:45:09 -0000 1.9 *************** *** 90,93 **** --- 90,98 ---- /> <File + RelPath = "InvalidNodeEvent.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "NetReflector.cs" SubType = "Code" |
From: Owen R. <exo...@us...> - 2005-04-15 04:45:22
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15960/src/NetReflector/Serialisers Modified Files: XmlTypeSerialiser.cs Log Message: some refactoring of invalid node detection. now also detects duplicates. Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XmlTypeSerialiser.cs 7 Apr 2005 04:30:40 -0000 1.5 --- XmlTypeSerialiser.cs 15 Apr 2005 04:45:09 -0000 1.6 *************** *** 91,99 **** { IDictionary childNodes = new ListDictionary(); ! foreach (XmlNode attribute in node.Attributes) ! childNodes[attribute.Name] = attribute; ! ! foreach (XmlNode childNode in node.ChildNodes) // check for duplicates ! childNodes[childNode.Name] = childNode; foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) --- 91,96 ---- { IDictionary childNodes = new ListDictionary(); ! AddChildNodesToDictionary(node.Attributes, childNodes, table); ! AddChildNodesToDictionary(node.ChildNodes, childNodes, table); foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) *************** *** 109,113 **** foreach (XmlNode orphan in childNodes.Values) ! table.OnUnusedNode(orphan); } } --- 106,122 ---- foreach (XmlNode orphan in childNodes.Values) ! table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); ! } ! ! private void AddChildNodesToDictionary(IEnumerable nodes, IDictionary childNodes, NetReflectorTypeTable table) ! { ! foreach (XmlNode node in nodes) ! { ! if (childNodes.Contains(node.Name)) ! { ! table.OnInvalidNode(new InvalidNodeEventArgs(node, "Duplicate node detected: " + node.OuterXml)); ! } ! childNodes[node.Name] = node; ! } } } |
From: Owen R. <exo...@us...> - 2005-04-14 17:34:07
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17396/src/NetReflector/util Modified Files: ReflectorMember.cs Log Message: improve exception message when failing to set value on member Index: ReflectorMember.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/ReflectorMember.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReflectorMember.cs 16 Nov 2004 04:41:19 -0000 1.4 --- ReflectorMember.cs 14 Apr 2005 17:33:21 -0000 1.5 *************** *** 79,83 **** catch (TargetInvocationException ex) { ! throw ex.InnerException; } } --- 79,84 ---- catch (TargetInvocationException ex) { ! string msg = string.Format(@"Unable to assign value ""{0}"" to member ""{1}"".", value, MemberName); ! throw new NetReflectorException(msg, ex.InnerException); } } |
From: Owen R. <exo...@us...> - 2005-04-14 17:33:46
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17396/src/NetReflector.Test/Util Modified Files: ReflectorMemberTest.cs Log Message: improve exception message when failing to set value on member Index: ReflectorMemberTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Util/ReflectorMemberTest.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReflectorMemberTest.cs 22 Oct 2004 12:45:33 -0000 1.4 --- ReflectorMemberTest.cs 14 Apr 2005 17:33:20 -0000 1.5 *************** *** 59,63 **** } ! [Test, ExpectedException(typeof(ArgumentException))] public void SettingValueThrowsException() { --- 59,63 ---- } ! [Test, ExpectedException(typeof(NetReflectorException))] public void SettingValueThrowsException() { |
From: Owen R. <exo...@us...> - 2005-04-07 04:31:49
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16181/src/NetReflector.Test Modified Files: NetReflectorTest.csproj NetReflectorTypeTableTest.cs Added Files: NetReflectorTypeTableUnusedNodeTest.cs Log Message: NETREF-3: NetReflector now generates warning events if the configuration xml contains unused nodes. Index: NetReflectorTest.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTest.csproj,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** NetReflectorTest.csproj 7 Mar 2005 05:46:06 -0000 1.13 --- NetReflectorTest.csproj 7 Apr 2005 04:30:37 -0000 1.14 *************** *** 116,119 **** --- 116,124 ---- /> <File + RelPath = "NetReflectorTypeTableUnusedNodeTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Generators\XmlDocumentationGeneratorTest.cs" SubType = "Code" --- NEW FILE: NetReflectorTypeTableUnusedNodeTest.cs --- using System; using System.Collections; using System.Reflection; using System.Xml; using Exortech.NetReflector.Util; using NUnit.Framework; namespace Exortech.NetReflector.Test { [TestFixture] public class NetReflectorTypeTableUnusedNodeTest { private IList nodes; private XmlTypeSerialiser serialiser; private NetReflectorTypeTable table; [SetUp] protected void SetUp() { nodes = new ArrayList(); serialiser = new XmlTypeSerialiser(typeof(TestClass), ReflectorTypeAttribute.GetAttribute(typeof(TestClass))); table = NetReflectorTypeTable(); } [Test] public void RaiseUnusedNodeEventIfXmlContainsUnnecessaryNodes() { string xml = TestClass.GetXml(DateTime.Now, string.Format(@"<inner fooz=""bar""><baz/><yaz />{0}</inner>", TestInnerClass.GetInnerXml())); table.UnusedNode += new UnusedNodeEventHandler(HandleUnusedNode); serialiser.Read(XmlUtil.ReadNode(xml), table); Assert.AreEqual(3, nodes.Count); Assert.AreEqual("fooz", ((XmlNode)nodes[0]).Name); Assert.AreEqual("baz", ((XmlNode)nodes[1]).Name); Assert.AreEqual("yaz", ((XmlNode)nodes[2]).Name); } [Test] public void DoNotRaiseUnusedNodeEventIfXmlDoesNotContainUnnecessaryNodes() { string xml = TestClass.GetXmlWithSubClass(DateTime.Now); table.UnusedNode += new UnusedNodeEventHandler(HandleUnusedNode); serialiser.Read(XmlUtil.ReadNode(xml), table); Assert.AreEqual(0, nodes.Count); } [Test] public void ShouldHandleRaisingUnusedNodeEventsIfNoHandlerHasBeenRegistered() { table.OnUnusedNode(null); } private void HandleUnusedNode(XmlNode node) { nodes.Add(node); } private NetReflectorTypeTable NetReflectorTypeTable() { NetReflectorTypeTable table = new NetReflectorTypeTable(); table.Add(Assembly.GetExecutingAssembly()); return table; } } } Index: NetReflectorTypeTableTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTypeTableTest.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NetReflectorTypeTableTest.cs 7 Mar 2005 05:46:06 -0000 1.5 --- NetReflectorTypeTableTest.cs 7 Apr 2005 04:30:37 -0000 1.6 *************** *** 111,115 **** table.Add(typeof (TestClass)); ! Assert.AreEqual(instantiator, ((IXmlSerialiser) table["reflectTest"]).Instantiator); } --- 111,115 ---- table.Add(typeof (TestClass)); ! Assert.AreEqual(instantiator, ((XmlTypeSerialiser) table["reflectTest"]).Instantiator); } *************** *** 137,141 **** Assert.IsTrue(target.IndexOf(search) >= 0, message); } - } } \ No newline at end of file --- 137,140 ---- |
From: Owen R. <exo...@us...> - 2005-04-07 04:31:18
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16181/src/NetReflector.Test/Serialisers Modified Files: XmlTypeSerialiserTest.cs Log Message: NETREF-3: NetReflector now generates warning events if the configuration xml contains unused nodes. Index: XmlTypeSerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlTypeSerialiserTest.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlTypeSerialiserTest.cs 22 Oct 2004 12:45:33 -0000 1.2 --- XmlTypeSerialiserTest.cs 7 Apr 2005 04:30:39 -0000 1.3 *************** *** 4,8 **** { [TestFixture] ! public class XmlTypeSerialiserTest { [Test] --- 4,8 ---- { [TestFixture] ! public class XmlTypeSerialiserTest // Rename to ReflectorTypeAttributeTest { [Test] *************** *** 15,23 **** [Test] ! public void GetReflectorTypeAttribute_MissingAttribute() { ! // return null if attribute is missing ! ReflectorTypeAttribute attribute = ReflectorTypeAttribute.GetAttribute(typeof (string)); ! Assert.IsNull(attribute); } } --- 15,21 ---- [Test] ! public void ShouldReturnNullForTypeWithoutNetReflectorAttribute() { ! Assert.IsNull(ReflectorTypeAttribute.GetAttribute(typeof (string))); } } |
From: Owen R. <exo...@us...> - 2005-04-07 04:30:53
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/attributes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16181/src/NetReflector/attributes Modified Files: ReflectorPropertyAttribute.cs ReflectorTypeAttribute.cs Log Message: NETREF-3: NetReflector now generates warning events if the configuration xml contains unused nodes. Index: ReflectorTypeAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/ReflectorTypeAttribute.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReflectorTypeAttribute.cs 15 Nov 2004 05:13:03 -0000 1.4 --- ReflectorTypeAttribute.cs 7 Apr 2005 04:30:40 -0000 1.5 *************** *** 1,4 **** --- 1,5 ---- using System; using System.Xml; + using Exortech.NetReflector.Util; namespace Exortech.NetReflector *************** *** 32,35 **** --- 33,41 ---- } + public IXmlSerialiser CreateSerialiser(Type type, IInstantiator instantiator) + { + return new XmlTypeSerialiser(type, this, instantiator); + } + public void Write(XmlWriter writer, object target) { Index: ReflectorPropertyAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/ReflectorPropertyAttribute.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ReflectorPropertyAttribute.cs 3 Aug 2004 10:40:40 -0000 1.5 --- ReflectorPropertyAttribute.cs 7 Apr 2005 04:30:40 -0000 1.6 *************** *** 59,61 **** } } ! } --- 59,61 ---- } } ! } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-04-07 04:30:49
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16181/src/NetReflector/Serialisers Modified Files: IXmlSerialiser.cs XmlArraySerialiser.cs XmlCollectionSerialiser.cs XmlDictionarySerialiser.cs XmlMemberSerialiser.cs XmlTypeSerialiser.cs Log Message: NETREF-3: NetReflector now generates warning events if the configuration xml contains unused nodes. Index: XmlDictionarySerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlDictionarySerialiser.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlDictionarySerialiser.cs 7 Mar 2005 05:46:06 -0000 1.3 --- XmlDictionarySerialiser.cs 7 Apr 2005 04:30:40 -0000 1.4 *************** *** 46,50 **** } ! public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { IDictionary dictionary = Instantiator.Instantiate(instanceType) as IDictionary; --- 46,50 ---- } ! protected override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { IDictionary dictionary = Instantiator.Instantiate(instanceType) as IDictionary; Index: XmlMemberSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlMemberSerialiser.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** XmlMemberSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.8 --- XmlMemberSerialiser.cs 7 Apr 2005 04:30:40 -0000 1.9 *************** *** 29,32 **** --- 29,37 ---- } + protected IInstantiator Instantiator + { + get { return instantiator; } + } + public virtual void Write(XmlWriter writer, object target) { *************** *** 78,87 **** } - public IInstantiator Instantiator - { - get { return instantiator; } - set { instantiator = value; } - } - private void CheckIfMemberIsRequired() { --- 83,86 ---- *************** *** 97,108 **** if (attribute.InstanceTypeKey != null && childNode.Attributes[attribute.InstanceTypeKey] != null) { ! XmlNode typeNode = childNode.Attributes[attribute.InstanceTypeKey]; ! IXmlTypeSerialiser serialiser = table[typeNode.InnerText]; if (serialiser == null) { string msg = @"Type with NetReflector name ""{0}"" does not exist. The name may be incorrect or the assembly containing the type might not be loaded. Xml: {1}"; ! throw new NetReflectorException(string.Format(msg, typeNode.InnerText, childNode.OuterXml)); } return serialiser.Type; } --- 96,109 ---- if (attribute.InstanceTypeKey != null && childNode.Attributes[attribute.InstanceTypeKey] != null) { ! XmlAttribute instanceTypeAttribute = childNode.Attributes[attribute.InstanceTypeKey]; ! IXmlTypeSerialiser serialiser = table[instanceTypeAttribute.InnerText]; if (serialiser == null) { string msg = @"Type with NetReflector name ""{0}"" does not exist. The name may be incorrect or the assembly containing the type might not be loaded. Xml: {1}"; ! throw new NetReflectorException(string.Format(msg, instanceTypeAttribute.InnerText, childNode.OuterXml)); } + /// HACK: no way of indicating that attribute is InstanceTypeKey. If this is removed then attribute will generate warning. + childNode.Attributes.Remove(instanceTypeAttribute); return serialiser.Type; } *************** *** 117,121 **** } ! public virtual object Read(XmlNode childNode, Type instanceType, NetReflectorTypeTable table) { if (ReflectionUtil.IsCommonType(instanceType)) --- 118,122 ---- } ! protected virtual object Read(XmlNode childNode, Type instanceType, NetReflectorTypeTable table) { if (ReflectionUtil.IsCommonType(instanceType)) Index: XmlCollectionSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlCollectionSerialiser.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlCollectionSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.3 --- XmlCollectionSerialiser.cs 7 Apr 2005 04:30:40 -0000 1.4 *************** *** 9,15 **** public class XmlCollectionSerialiser : XmlMemberSerialiser { ! public XmlCollectionSerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) : base(member, attribute) { } ! private string elementName = "string"; protected override void WriteValue(XmlWriter writer, object value) --- 9,15 ---- public class XmlCollectionSerialiser : XmlMemberSerialiser { ! private static readonly string elementName = "string"; ! public XmlCollectionSerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) : base(member, attribute) { } protected override void WriteValue(XmlWriter writer, object value) *************** *** 34,38 **** /// Todo: convert to element type ! public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { IList list = Instantiator.Instantiate(instanceType) as IList; --- 34,38 ---- /// Todo: convert to element type ! protected override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { IList list = Instantiator.Instantiate(instanceType) as IList; Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** XmlTypeSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.4 --- XmlTypeSerialiser.cs 7 Apr 2005 04:30:40 -0000 1.5 *************** *** 1,7 **** - using Exortech.NetReflector.Util; using System; using System.Collections; using System.Reflection; using System.Xml; namespace Exortech.NetReflector --- 1,8 ---- using System; using System.Collections; + using System.Collections.Specialized; using System.Reflection; using System.Xml; + using Exortech.NetReflector.Util; namespace Exortech.NetReflector *************** *** 14,22 **** private IInstantiator instantiator; ! public XmlTypeSerialiser(Type type, ReflectorTypeAttribute attribute) { this.type = type; this.attribute = attribute; ! this.instantiator = new DefaultInstantiator(); } --- 15,26 ---- private IInstantiator instantiator; ! public XmlTypeSerialiser(Type type, ReflectorTypeAttribute attribute) : this(type, attribute, new DefaultInstantiator()) ! {} ! ! public XmlTypeSerialiser(Type type, ReflectorTypeAttribute attribute, IInstantiator instantiator) { this.type = type; this.attribute = attribute; ! this.instantiator = instantiator; } *************** *** 31,34 **** --- 35,43 ---- } + public IInstantiator Instantiator + { + get { return instantiator; } + } + public IXmlMemberSerialiser[] MemberSerialisers { *************** *** 79,93 **** } - public IInstantiator Instantiator - { - get { return instantiator; } - set { instantiator = value; } - } - public void ReadMembers(XmlNode node, object instance, NetReflectorTypeTable table) { foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) { ! XmlNode childNode = XmlUtil.GetChildNode(node, serialiser.Attribute.Name); object value = serialiser.Read(childNode, table); if (value != null) --- 88,103 ---- } public void ReadMembers(XmlNode node, object instance, NetReflectorTypeTable table) { + IDictionary childNodes = new ListDictionary(); + foreach (XmlNode attribute in node.Attributes) + childNodes[attribute.Name] = attribute; + + foreach (XmlNode childNode in node.ChildNodes) // check for duplicates + childNodes[childNode.Name] = childNode; + foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) { ! XmlNode childNode = (XmlNode) childNodes[serialiser.Attribute.Name]; object value = serialiser.Read(childNode, table); if (value != null) *************** *** 95,100 **** serialiser.SetValue(instance, value); } } } } ! } --- 105,114 ---- serialiser.SetValue(instance, value); } + childNodes.Remove(serialiser.Attribute.Name); } + + foreach (XmlNode orphan in childNodes.Values) + table.OnUnusedNode(orphan); } } ! } \ No newline at end of file Index: IXmlSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/IXmlSerialiser.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** IXmlSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.4 --- IXmlSerialiser.cs 7 Apr 2005 04:30:39 -0000 1.5 *************** *** 1,4 **** using System.Xml; - using Exortech.NetReflector.Util; namespace Exortech.NetReflector --- 1,3 ---- *************** *** 8,13 **** void Write(XmlWriter writer, object target); object Read(XmlNode node, NetReflectorTypeTable table); - - IInstantiator Instantiator { set; get; } } ! } --- 7,10 ---- void Write(XmlWriter writer, object target); object Read(XmlNode node, NetReflectorTypeTable table); } ! } \ No newline at end of file Index: XmlArraySerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlArraySerialiser.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlArraySerialiser.cs 16 Nov 2004 04:41:19 -0000 1.3 --- XmlArraySerialiser.cs 7 Apr 2005 04:30:40 -0000 1.4 *************** *** 15,19 **** } ! public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { Type elementType = instanceType.GetElementType(); --- 15,19 ---- } ! protected override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { Type elementType = instanceType.GetElementType(); |
From: Owen R. <exo...@us...> - 2005-04-07 04:30:49
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16181/src/NetReflector/util Modified Files: XmlUtil.cs Log Message: NETREF-3: NetReflector now generates warning events if the configuration xml contains unused nodes. Index: XmlUtil.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/XmlUtil.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlUtil.cs 15 Nov 2004 05:13:03 -0000 1.2 --- XmlUtil.cs 7 Apr 2005 04:30:40 -0000 1.3 *************** *** 11,14 **** --- 11,21 ---- } + public static XmlNode ReadNode(string xml) + { + XmlDocument document = new XmlDocument(); + document.LoadXml(xml); + return document.DocumentElement; + } + public static XmlNode ReadNode(XmlReader reader) { |
From: Owen R. <exo...@us...> - 2005-04-07 04:30:48
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16181/src/NetReflector Modified Files: NetReflector.cs NetReflectorTypeTable.cs Log Message: NETREF-3: NetReflector now generates warning events if the configuration xml contains unused nodes. Index: NetReflector.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflector.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NetReflector.cs 15 Nov 2004 05:13:02 -0000 1.2 --- NetReflector.cs 7 Apr 2005 04:30:39 -0000 1.3 *************** *** 6,28 **** namespace Exortech.NetReflector { ! public class NetReflector { ! public static string Write(object target) { ! StringWriter buffer = new StringWriter(); ! Write(buffer, target); ! return buffer.ToString(); } ! public static void Write(TextWriter writer, object target) { ! CheckNull(writer, "writer", typeof (TextWriter)); ! Write(new XmlTextWriter(writer), target); } ! public static void Write(XmlWriter writer, object target) { ! CheckNull(writer, "writer", typeof (TextWriter)); ! CheckNull(target, "target", typeof (object)); ReflectorTypeAttribute attribute = ReflectorTypeAttribute.GetAttribute(target); --- 6,28 ---- namespace Exortech.NetReflector { ! public class NetReflectorWriter { ! private readonly XmlWriter writer; ! ! public NetReflectorWriter(TextWriter writer) { ! NetReflector.CheckNull(writer, "writer", typeof (TextWriter)); ! this.writer = new XmlTextWriter(writer); } ! public NetReflectorWriter(XmlWriter writer) { ! NetReflector.CheckNull(writer, "writer", typeof (XmlWriter)); ! this.writer = writer; } ! public void Write(object target) { ! NetReflector.CheckNull(target, "target", typeof (object)); ReflectorTypeAttribute attribute = ReflectorTypeAttribute.GetAttribute(target); *************** *** 33,128 **** attribute.Write(writer, target); } public static object Read(string xml) { ! return Read(xml, null); } public static object Read(string xml, NetReflectorTypeTable table) { ! return Read(new StringReader(xml), table); } public static object Read(TextReader reader) { ! return Read(reader, null); } public static object Read(TextReader reader, NetReflectorTypeTable table) { ! CheckNull(reader, "reader", typeof (TextReader)); ! return Read(new XmlTextReader(reader), table); } public static object Read(XmlReader reader) { ! return Read(reader, null); } public static object Read(XmlReader reader, NetReflectorTypeTable table) { ! CheckNull(reader, "reader", typeof (XmlReader)); ! return Read(XmlUtil.ReadNode(reader), table); } public static object Read(XmlNode node) { ! return Read(node, null); } public static object Read(XmlNode node, NetReflectorTypeTable table) { ! CheckNull(node, "node", typeof (XmlNode)); ! if (table == null) ! { ! table = NetReflectorTypeTable.CreateDefault(); ! } ! ! IXmlSerialiser serialiser = table[node.Name]; ! if (serialiser == null) ! { ! throw new NetReflectorException(string.Format("No loaded type is marked up with a ReflectorType attribute that matches the Xml node ({0}). Xml Source: {1}", node.Name, node.OuterXml)); ! } ! return serialiser.Read(node, table); } public static void Read(string xml, object instance) { ! Read(xml, instance, null); } public static void Read(string xml, object instance, NetReflectorTypeTable table) { ! Read(new XmlTextReader(new StringReader(xml)), instance, table); } public static void Read(XmlReader reader, object instance) { ! Read(reader, instance, null); ! } public static void Read(XmlReader reader, object instance, NetReflectorTypeTable table) { ! Read(XmlUtil.ReadNode(reader), instance, table); } public static void Read(XmlNode node, object instance) { ! Read(node, instance, null); } public static void Read(XmlNode node, object instance, NetReflectorTypeTable table) { ! CheckNull(node, "node", typeof (XmlNode)); ! CheckNull(instance, "instance", typeof (object)); ! if (table == null) ! { ! table = NetReflectorTypeTable.CreateDefault(); ! } ! new XmlTypeSerialiser(instance.GetType(), new ReflectorTypeAttribute(instance.GetType().Name)).ReadMembers(node, instance, table); } ! private static void CheckNull(object obj, string param, Type expected) { if (obj == null) --- 33,195 ---- attribute.Write(writer, target); } + } + + public class NetReflectorReader + { + private readonly NetReflectorTypeTable table; + + public NetReflectorReader() : this(NetReflectorTypeTable.CreateDefault()) + {} + + public NetReflectorReader(NetReflectorTypeTable table) + { + this.table = table; + } + + public object Read(string xml) + { + return Read(new StringReader(xml)); + } + + public object Read(TextReader reader) + { + NetReflector.CheckNull(reader, "reader", typeof (TextReader)); + return Read(new XmlTextReader(reader)); + } + + public object Read(XmlReader reader) + { + NetReflector.CheckNull(reader, "reader", typeof (XmlReader)); + return Read(XmlUtil.ReadNode(reader)); + } + + public object Read(XmlNode node) + { + NetReflector.CheckNull(node, "node", typeof (XmlNode)); + IXmlSerialiser serialiser = table[node.Name]; + if (serialiser == null) + { + throw new NetReflectorException(string.Format("No loaded type is marked up with a ReflectorType attribute that matches the Xml node ({0}). Xml Source: {1}", node.Name, node.OuterXml)); + } + return serialiser.Read(node, table); + } + + public void Read(string xml, object instance) + { + NetReflector.CheckNull(xml, "xml", typeof (string)); + Read(new StringReader(xml), instance); + } + + public void Read(TextReader reader, object instance) + { + NetReflector.CheckNull(reader, "reader", typeof (TextReader)); + Read(new XmlTextReader(reader), instance); + } + + public void Read(XmlReader reader, object instance) + { + NetReflector.CheckNull(reader, "reader", typeof (XmlReader)); + Read(XmlUtil.ReadNode(reader), instance); + } + + public void Read(XmlNode node, object instance) + { + NetReflector.CheckNull(node, "node", typeof (XmlNode)); + NetReflector.CheckNull(instance, "instance", typeof (object)); + new XmlTypeSerialiser(instance.GetType(), new ReflectorTypeAttribute(instance.GetType().Name)).ReadMembers(node, instance, table); + } + } + + // [Obsolete("Use the instance methods instead")] + public class NetReflector + { + public static string Write(object target) + { + StringWriter buffer = new StringWriter(); + new NetReflectorWriter(buffer).Write(target); + return buffer.ToString(); + } + + public static void Write(TextWriter writer, object target) + { + new NetReflectorWriter(writer).Write(target); + } + + public static void Write(XmlWriter writer, object target) + { + new NetReflectorWriter(writer).Write(target); + } public static object Read(string xml) { ! return new NetReflectorReader().Read(xml); } public static object Read(string xml, NetReflectorTypeTable table) { ! return new NetReflectorReader(table).Read(xml); } public static object Read(TextReader reader) { ! return new NetReflectorReader().Read(reader); } public static object Read(TextReader reader, NetReflectorTypeTable table) { ! return new NetReflectorReader(table).Read(reader); } public static object Read(XmlReader reader) { ! return new NetReflectorReader().Read(reader); } public static object Read(XmlReader reader, NetReflectorTypeTable table) { ! return new NetReflectorReader(table).Read(reader); } public static object Read(XmlNode node) { ! return new NetReflectorReader().Read(node); } public static object Read(XmlNode node, NetReflectorTypeTable table) { ! return new NetReflectorReader(table).Read(node); } public static void Read(string xml, object instance) { ! new NetReflectorReader().Read(xml, instance); } public static void Read(string xml, object instance, NetReflectorTypeTable table) { ! new NetReflectorReader(table).Read(xml, instance); } public static void Read(XmlReader reader, object instance) { ! new NetReflectorReader().Read(reader, instance); } public static void Read(XmlReader reader, object instance, NetReflectorTypeTable table) { ! new NetReflectorReader(table).Read(reader, instance); } public static void Read(XmlNode node, object instance) { ! new NetReflectorReader().Read(node, instance); } public static void Read(XmlNode node, object instance, NetReflectorTypeTable table) { ! new NetReflectorReader(table).Read(node, instance); } ! protected internal static void CheckNull(object obj, string param, Type expected) { if (obj == null) Index: NetReflectorTypeTable.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflectorTypeTable.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** NetReflectorTypeTable.cs 7 Mar 2005 05:46:06 -0000 1.4 --- NetReflectorTypeTable.cs 7 Apr 2005 04:30:39 -0000 1.5 *************** *** 3,23 **** using System.IO; using System.Reflection; using Exortech.NetReflector.Util; namespace Exortech.NetReflector { public class NetReflectorTypeTable : IEnumerable { private readonly IInstantiator instantiator; ! public NetReflectorTypeTable() : this (new DefaultInstantiator()) { } public NetReflectorTypeTable(IInstantiator instantiator) { this.instantiator = instantiator; } - private Hashtable reflectorTypes = new Hashtable(); - public int Count { --- 3,28 ---- using System.IO; using System.Reflection; + using System.Xml; using Exortech.NetReflector.Util; namespace Exortech.NetReflector { + public delegate void UnusedNodeEventHandler(XmlNode node); + public class NetReflectorTypeTable : IEnumerable { + public event UnusedNodeEventHandler UnusedNode; private readonly IInstantiator instantiator; + private readonly IDictionary reflectorTypes = new Hashtable(); ! public NetReflectorTypeTable() : this(new DefaultInstantiator()) ! {} public NetReflectorTypeTable(IInstantiator instantiator) { this.instantiator = instantiator; + UnusedNode = new UnusedNodeEventHandler(NullHandler); } public int Count { *************** *** 37,47 **** if (! reflectorTypes.Contains(attribute.Name)) { ! IXmlSerialiser serialiser = attribute.CreateSerialiser(type); ! serialiser.Instantiator = instantiator; reflectorTypes.Add(attribute.Name, serialiser); } else if (type != this[attribute.Name].Type) { ! throw new NetReflectorException(string.Format("Multiple types exist with the same ReflectorTypeAttribute name ({0}): {1}, {2}", attribute.Name, type, this[attribute.Name].Type)); } --- 42,51 ---- if (! reflectorTypes.Contains(attribute.Name)) { ! IXmlSerialiser serialiser = attribute.CreateSerialiser(type, instantiator); reflectorTypes.Add(attribute.Name, serialiser); } else if (type != this[attribute.Name].Type) { ! throw new NetReflectorException(string.Format(@"Multiple types exist with the same ReflectorTypeAttribute name ""{0}"": ({1}, {2})", attribute.Name, type, this[attribute.Name].Type)); } *************** *** 95,99 **** return table; } ! public static NetReflectorTypeTable CreateDefault(IInstantiator instantiator) { --- 99,103 ---- return table; } ! public static NetReflectorTypeTable CreateDefault(IInstantiator instantiator) { *************** *** 112,115 **** --- 116,127 ---- return reflectorTypes.Values.GetEnumerator(); } + + public void OnUnusedNode(XmlNode orphan) + { + UnusedNode(orphan); + } + + private void NullHandler(XmlNode node) + {} } } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-03-11 13:23:36
|
Update of /cvsroot/netreflector/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20588 Modified Files: reflector.build Log Message: adding vil to NetReflector build Index: reflector.build =================================================================== RCS file: /cvsroot/netreflector/NetReflector/reflector.build,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** reflector.build 15 Nov 2004 05:13:00 -0000 1.7 --- reflector.build 11 Mar 2005 13:23:22 -0000 1.8 *************** *** 17,20 **** --- 17,22 ---- <property name="plugin.dll" value="NetReflectorPlugin.Test.dll" /> <property name="documenter.dll" value="NetReflectorDocumenterTask.dll" /> + <property name="vil.executable" value="tools\vil\vil.exe" /> + <property name="vil.assemblies" value="${core.dll},${test.dll}" /> <!-- ALL --> *************** *** 189,193 **** --- 191,204 ---- <exec program="tools\fxcop\fxcopcmd.exe" commandline="/file:${build.dir}\NetReflector.dll /o:${build.dir}\fxcop\netreflector-fxcop.xml" failonerror="false"/> + <call target="vil" /> </target> + + <target name="vil"> + <exec program="${vil.executable}" + workingdir="${build.dir}\webdashboard" + commandline='/a="${vil.assemblies}" /outxml="../NetReflector.results-vil.xml" /m classes,enumerations,structs,types,LOC,events,impInterfaces,WMC,DIT,CBO,RFC,NOC,constructors,methods,imps,fields,properties /sc=type' + failonerror="false"/> + </target> + </project> \ No newline at end of file |
From: Owen R. <exo...@us...> - 2005-03-11 13:23:36
|
Update of /cvsroot/netreflector/NetReflector/tools/vil In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20588/tools/vil Added Files: .cvsignore ILReader.dll VilCore.dll judge.vjf vil.css vil.exe vil.exe.config vil.lic Log Message: adding vil to NetReflector build --- NEW FILE: vil.lic --- vm476949 SqSKKcfjdooD5/5gtRz84H0TSoqb2YZx0OoS7CgJBKBhfTFUkaprNPYiPE2wupnh --- NEW FILE: ILReader.dll --- (This appears to be a binary file; contents omitted.) --- NEW FILE: vil.exe.config --- <configuration> <startup> <requiredRuntime imageVersion="v1.0.3705" version="v1.0.3705" /> <supportedRuntime version="v1.1.4322" /> <supportedRuntime version="v1.0.3705" /> </startup> </configuration> --- NEW FILE: vil.exe --- (This appears to be a binary file; contents omitted.) --- NEW FILE: vil.css --- table { color: blue; font-size: 11pt} th { background-color: b0e0ff; color: darkblue } tr.evenrow {background-color: d0f0ff} table.summary {font-size: 9pt} td.sumcell {vertical-align: top} caption {font-size: 14pt} .copyright { font-size: 9pt; color: blue} .veryhigh {color: e10000} .high {color: a0a000} td.veryhigh {color: e10000} td.high {color: a0a000} --- NEW FILE: judge.vjf --- consoleveryhigh 31 consolehigh 33 imp loc 435 305 imp cc 25 18 imp maxstack 9 imp params 5 4 imp locals 15 11 type loc 2450 1740 type wmc 200 135 type cbo 29 21 type rfc 155 113 type methods 55 40 type constructors 6 type lcom 100 module distance .5 .47 --- NEW FILE: VilCore.dll --- (This appears to be a binary file; contents omitted.) --- NEW FILE: .cvsignore --- docs |