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-03-11 05:16:15
|
Update of /cvsroot/netreflector/NetReflector/tools/vil In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29248/vil Log Message: Directory /cvsroot/netreflector/NetReflector/tools/vil added to the repository |
From: Mike R. <mik...@us...> - 2005-03-07 05:46:35
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector.Test Modified Files: NetReflectorTest.csproj NetReflectorTypeTableTest.cs Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) Index: NetReflectorTest.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTest.csproj,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** NetReflectorTest.csproj 15 Nov 2004 05:58:56 -0000 1.12 --- NetReflectorTest.csproj 7 Mar 2005 05:46:06 -0000 1.13 *************** *** 171,174 **** --- 171,179 ---- /> <File + RelPath = "resources\TestInstantiator.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "resources\TestSubClass.cs" SubType = "Code" *************** *** 206,210 **** /> <File ! RelPath = "Util\ReflectionUtilTest.cs" SubType = "Code" BuildAction = "Compile" --- 211,215 ---- /> <File ! RelPath = "Util\DefaultInstantiatorTest.cs" SubType = "Code" BuildAction = "Compile" Index: NetReflectorTypeTableTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTypeTableTest.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** NetReflectorTypeTableTest.cs 22 Oct 2004 12:45:33 -0000 1.4 --- NetReflectorTypeTableTest.cs 7 Mar 2005 05:46:06 -0000 1.5 *************** *** 3,6 **** --- 3,7 ---- using System.Reflection; using System.Reflection.Emit; + using Exortech.NetReflector.Test.resources; using NUnit.Framework; *************** *** 103,106 **** --- 104,118 ---- } + [Test] + public void ShouldUseCustomInstantiatorIfUsed() + { + TestInstantiator instantiator = new TestInstantiator(); + NetReflectorTypeTable table = new NetReflectorTypeTable(instantiator); + table.Add(typeof (TestClass)); + + Assert.AreEqual(instantiator, ((IXmlSerialiser) table["reflectTest"]).Instantiator); + } + + private AssemblyBuilder CreateTemporaryAssembly() { |
From: Mike R. <mik...@us...> - 2005-03-07 05:46:35
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector.Test/Serialisers Modified Files: XmlDictionarySerialiserTest.cs XmlCollectionSerialiserTest.cs Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) Index: XmlCollectionSerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlCollectionSerialiserTest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlCollectionSerialiserTest.cs 16 Nov 2004 04:41:18 -0000 1.3 --- XmlCollectionSerialiserTest.cs 7 Mar 2005 05:46:07 -0000 1.4 *************** *** 1,2 **** --- 1,3 ---- + using Exortech.NetReflector.Test.resources; using NUnit.Framework; *************** *** 6,10 **** public class XmlCollectionSerialiserTest { ! private NetReflectorTypeTable table = NetReflectorTypeTable.CreateDefault(); [Test] --- 7,17 ---- public class XmlCollectionSerialiserTest { ! private NetReflectorTypeTable table; ! ! [SetUp] ! public void Setup() ! { ! table = NetReflectorTypeTable.CreateDefault(); ! } [Test] *************** *** 28,31 **** --- 35,47 ---- CollectionTestClass.AssertEquals(CollectionTestClass.Create(), actual); } + + [Test] + public void ShouldUseInstantiatorThatHasBeenSet() + { + TestInstantiator instantiator = new TestInstantiator(); + table = NetReflectorTypeTable.CreateDefault(instantiator); + ReadCollectionTestClass(); + Assert.AreEqual(4, instantiator.instantiateCallCount); + } } } Index: XmlDictionarySerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlDictionarySerialiserTest.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlDictionarySerialiserTest.cs 22 Oct 2004 12:45:33 -0000 1.2 --- XmlDictionarySerialiserTest.cs 7 Mar 2005 05:46:07 -0000 1.3 *************** *** 1,2 **** --- 1,3 ---- + using Exortech.NetReflector.Test.resources; using NUnit.Framework; *************** *** 6,10 **** public class XmlDictionarySerialiserTest { ! private NetReflectorTypeTable table = NetReflectorTypeTable.CreateDefault(); [Test] --- 7,17 ---- public class XmlDictionarySerialiserTest { ! private NetReflectorTypeTable table; ! ! [SetUp] ! public void Setup() ! { ! table = NetReflectorTypeTable.CreateDefault(); ! } [Test] *************** *** 36,39 **** --- 43,55 ---- } + [Test] + public void ShouldUseInstantiatorThatHasBeenSet() + { + TestInstantiator instantiator = new TestInstantiator(); + table = NetReflectorTypeTable.CreateDefault(instantiator); + ReadTestHashClassContainingElements(); + Assert.AreEqual(4, instantiator.instantiateCallCount); + } + [Test, Ignore("not done yet")] public void UnspecifiedKeyIsElementName() |
From: Mike R. <mik...@us...> - 2005-03-07 05:46:34
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector Modified Files: NetReflectorTypeTable.cs NetReflector.csproj Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) Index: NetReflectorTypeTable.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflectorTypeTable.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NetReflectorTypeTable.cs 22 Oct 2004 12:45:34 -0000 1.3 --- NetReflectorTypeTable.cs 7 Mar 2005 05:46:06 -0000 1.4 *************** *** 3,6 **** --- 3,7 ---- using System.IO; using System.Reflection; + using Exortech.NetReflector.Util; namespace Exortech.NetReflector *************** *** 8,11 **** --- 9,21 ---- 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(); *************** *** 27,31 **** if (! reflectorTypes.Contains(attribute.Name)) { ! reflectorTypes.Add(attribute.Name, attribute.CreateSerialiser(type)); } else if (type != this[attribute.Name].Type) --- 37,43 ---- 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) *************** *** 80,87 **** { NetReflectorTypeTable table = new NetReflectorTypeTable(); ! table.Add(AppDomain.CurrentDomain); return table; } public IEnumerator GetEnumerator() { --- 92,111 ---- { NetReflectorTypeTable table = new NetReflectorTypeTable(); ! SetupDefaultTable(table); ! return table; ! } ! ! public static NetReflectorTypeTable CreateDefault(IInstantiator instantiator) ! { ! NetReflectorTypeTable table = new NetReflectorTypeTable(instantiator); ! SetupDefaultTable(table); return table; } + private static void SetupDefaultTable(NetReflectorTypeTable table) + { + table.Add(AppDomain.CurrentDomain); + } + public IEnumerator GetEnumerator() { Index: NetReflector.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflector.csproj,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** NetReflector.csproj 16 Nov 2004 04:41:19 -0000 1.7 --- NetReflector.csproj 7 Mar 2005 05:46:06 -0000 1.8 *************** *** 190,193 **** --- 190,203 ---- /> <File + RelPath = "util\DefaultInstantiator.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File + RelPath = "util\IInstantiator.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "util\ReflectionUtil.cs" SubType = "Code" |
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector/Serialisers Modified Files: XmlCollectionSerialiser.cs XmlMemberSerialiser.cs XmlTypeSerialiser.cs XmlDictionarySerialiser.cs IXmlSerialiser.cs Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) Index: XmlDictionarySerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlDictionarySerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlDictionarySerialiser.cs 12 Dec 2003 21:30:17 -0000 1.2 --- XmlDictionarySerialiser.cs 7 Mar 2005 05:46:06 -0000 1.3 *************** *** 48,52 **** public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { ! IDictionary dictionary = ReflectionUtil.CreateInstance(instanceType) as IDictionary; // null check foreach (XmlNode child in XmlElementList.Create(node.ChildNodes)) --- 48,52 ---- public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { ! IDictionary dictionary = Instantiator.Instantiate(instanceType) as IDictionary; // null check foreach (XmlNode child in XmlElementList.Create(node.ChildNodes)) Index: XmlMemberSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlMemberSerialiser.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** XmlMemberSerialiser.cs 16 Nov 2004 04:41:19 -0000 1.7 --- XmlMemberSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.8 *************** *** 10,13 **** --- 10,14 ---- private ReflectorMember member; private ReflectorPropertyAttribute attribute; + private IInstantiator instantiator; public XmlMemberSerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) *************** *** 15,18 **** --- 16,20 ---- this.member = ReflectorMember.Create(member); this.attribute = attribute; + this.instantiator = new DefaultInstantiator(); } *************** *** 76,79 **** --- 78,87 ---- } + public IInstantiator Instantiator + { + get { return instantiator; } + set { instantiator = value; } + } + private void CheckIfMemberIsRequired() { Index: XmlCollectionSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlCollectionSerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlCollectionSerialiser.cs 16 Nov 2004 04:41:19 -0000 1.2 --- XmlCollectionSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.3 *************** *** 36,40 **** public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { ! IList list = ReflectionUtil.CreateInstance(instanceType) as IList; // null check foreach (XmlNode child in XmlElementList.Create(node.ChildNodes)) --- 36,40 ---- public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { ! IList list = Instantiator.Instantiate(instanceType) as IList; // null check foreach (XmlNode child in XmlElementList.Create(node.ChildNodes)) Index: IXmlSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/IXmlSerialiser.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** IXmlSerialiser.cs 16 Nov 2004 04:41:19 -0000 1.3 --- IXmlSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.4 *************** *** 1,3 **** --- 1,4 ---- using System.Xml; + using Exortech.NetReflector.Util; namespace Exortech.NetReflector *************** *** 7,10 **** --- 8,13 ---- void Write(XmlWriter writer, object target); object Read(XmlNode node, NetReflectorTypeTable table); + + IInstantiator Instantiator { set; get; } } } Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlTypeSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.3 --- XmlTypeSerialiser.cs 7 Mar 2005 05:46:06 -0000 1.4 *************** *** 12,15 **** --- 12,16 ---- private ReflectorTypeAttribute attribute; private IXmlMemberSerialiser[] serialisers; + private IInstantiator instantiator; public XmlTypeSerialiser(Type type, ReflectorTypeAttribute attribute) *************** *** 17,20 **** --- 18,22 ---- this.type = type; this.attribute = attribute; + this.instantiator = new DefaultInstantiator(); } *************** *** 72,80 **** public object Read(XmlNode node, NetReflectorTypeTable table) { ! object instance = ReflectionUtil.CreateInstance(type); ReadMembers(node, instance, table); return instance; } public void ReadMembers(XmlNode node, object instance, NetReflectorTypeTable table) { --- 74,88 ---- public object Read(XmlNode node, NetReflectorTypeTable table) { ! object instance = instantiator.Instantiate(type); ReadMembers(node, instance, table); return instance; } + public IInstantiator Instantiator + { + get { return instantiator; } + set { instantiator = value; } + } + public void ReadMembers(XmlNode node, object instance, NetReflectorTypeTable table) { |
From: Mike R. <mik...@us...> - 2005-03-07 05:46:20
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector/util Modified Files: ReflectionUtil.cs Added Files: DefaultInstantiator.cs IInstantiator.cs Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) Index: ReflectionUtil.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/ReflectionUtil.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ReflectionUtil.cs 15 Nov 2004 05:13:03 -0000 1.3 --- ReflectionUtil.cs 7 Mar 2005 05:46:05 -0000 1.4 *************** *** 12,28 **** return (t.IsPrimitive || t == typeof(string) || t == typeof(DateTime) || t.IsSubclassOf(typeof(Enum))); } - - public static object CreateInstance(Type type) - { - try - { - return type.Assembly.CreateInstance(type.FullName); - } - catch (Exception e) - { - string message = StringUtil.Format("Unable to create an instance of reflected type '{0}'. Please verify that this object has a default constructor.", type); - throw new NetReflectorException(message, e); - } - } } } --- 12,15 ---- --- NEW FILE: DefaultInstantiator.cs --- using System; using Exortech.NetReflector.Util; namespace Exortech.NetReflector.Util { public class DefaultInstantiator : IInstantiator { public object Instantiate(Type type) { try { return type.Assembly.CreateInstance(type.FullName); } catch (Exception e) { string message = StringUtil.Format("Unable to create an instance of reflected type '{0}'. Please verify that this object has a default constructor.", type); throw new NetReflectorException(message, e); } } } } --- NEW FILE: IInstantiator.cs --- using System; namespace Exortech.NetReflector.Util { public interface IInstantiator { object Instantiate(Type type); } } |
From: Mike R. <mik...@us...> - 2005-03-07 05:46:20
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector.Test/Util Added Files: DefaultInstantiatorTest.cs Removed Files: ReflectionUtilTest.cs Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) --- NEW FILE: DefaultInstantiatorTest.cs --- using Exortech.NetReflector.Util; using NUnit.Framework; using System; namespace Exortech.NetReflector.Test.Util { [TestFixture] public class DefaultInstantiatorTest { private DefaultInstantiator instantiator; [SetUp] public void Setup() { instantiator = new DefaultInstantiator(); } public void IsCommonType() { Assert.IsTrue(ReflectionUtil.IsCommonType(typeof(string)), "String member should be common type"); Assert.IsTrue(ReflectionUtil.IsCommonType(typeof(int)), "int should be common type"); Assert.IsTrue(ReflectionUtil.IsCommonType(typeof(DateTime)), "DateTime should be common type"); Assert.IsTrue(ReflectionUtil.IsCommonType(typeof(ReflectorMemberTest.TestEnum)), "Enum should be common type"); } [Test] public void CreateInstance() { TestClass testClass = (TestClass)instantiator.Instantiate(typeof(TestClass)); Assert.IsNotNull(testClass); } [Test, ExpectedException(typeof(NetReflectorException))] public void CreateInstanceWithUnknownType() { instantiator.Instantiate(typeof(string)); } } } --- ReflectionUtilTest.cs DELETED --- |
From: Mike R. <mik...@us...> - 2005-03-07 05:46:20
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21723/src/NetReflector.Test/resources Added Files: TestInstantiator.cs Log Message: Allowing Custom Instantiators to be used (used by CruiseControl.NET's Web Dashboard project) --- NEW FILE: TestInstantiator.cs --- using System; using Exortech.NetReflector.Util; namespace Exortech.NetReflector.Test.resources { public class TestInstantiator : IInstantiator { public int instantiateCallCount = 0; private readonly DefaultInstantiator realInstantiator; public TestInstantiator() { realInstantiator = new DefaultInstantiator(); } public object Instantiate(Type type) { instantiateCallCount++; return realInstantiator.Instantiate(type); } } } |
From: Owen R. <exo...@us...> - 2004-11-16 04:55:48
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24245/src/NetReflector/util Added Files: ReflectorTypeConverter.cs Log Message: - XmlArraySerialiser now converts xml element to array element type. Patch courtesy of Oane Stienstra. --- NEW FILE: ReflectorTypeConverter.cs --- using System; using System.ComponentModel; namespace Exortech.NetReflector.Util { public class ReflectorTypeConverter { private bool IsCompatibleType(Type to, object from) { return (from == null || to.IsInstanceOfType(from)); } public object Convert(Type to, object from) { if (IsCompatibleType(to, from)) return from; return TypeDescriptor.GetConverter(to).ConvertFrom(from); } } } |
From: Owen R. <exo...@us...> - 2004-11-16 04:41:29
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21969/src/NetReflector/Serialisers Modified Files: IXmlSerialiser.cs XmlArraySerialiser.cs XmlCollectionSerialiser.cs XmlMemberSerialiser.cs Log Message: - XmlArraySerialiser now converts xml element to array element type. Patch courtesy of Oane Stienstra. Index: XmlArraySerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlArraySerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlArraySerialiser.cs 15 Nov 2004 05:58:57 -0000 1.2 --- XmlArraySerialiser.cs 16 Nov 2004 04:41:19 -0000 1.3 *************** *** 8,12 **** public class XmlArraySerialiser : XmlCollectionSerialiser { ! public XmlArraySerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) : base(member, attribute) { } public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) --- 8,17 ---- public class XmlArraySerialiser : XmlCollectionSerialiser { ! protected readonly ReflectorTypeConverter converter; ! ! public XmlArraySerialiser(MemberInfo member, ReflectorPropertyAttribute attribute) : base(member, attribute) ! { ! converter = new ReflectorTypeConverter(); ! } public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) *************** *** 18,26 **** for (int i = 0; i < array.Length; i++) { ! // wrap exception? ! array.SetValue(base.ReadValue(nodes[i], table), i); } return array; } } ! } --- 23,31 ---- for (int i = 0; i < array.Length; i++) { ! object value = converter.Convert(elementType, base.ReadValue(nodes[i], table)); ! array.SetValue(value, i); } return array; } } ! } \ No newline at end of file Index: XmlMemberSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlMemberSerialiser.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** XmlMemberSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.6 --- XmlMemberSerialiser.cs 16 Nov 2004 04:41:19 -0000 1.7 *************** *** 30,34 **** { object value = member.GetValue(target); ! if (value != null && SerializableValue(value)) { writer.WriteStartElement(attribute.Name); --- 30,34 ---- { object value = member.GetValue(target); ! if (value != null && IsSerializableValue(value)) { writer.WriteStartElement(attribute.Name); *************** *** 43,47 **** } ! private bool SerializableValue(object value) { return (attribute.InstanceTypeKey == null || ReflectorTypeAttribute.GetAttribute(value) != null); --- 43,47 ---- } ! private bool IsSerializableValue(object value) { return (attribute.InstanceTypeKey == null || ReflectorTypeAttribute.GetAttribute(value) != null); Index: XmlCollectionSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlCollectionSerialiser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** XmlCollectionSerialiser.cs 5 Nov 2003 08:29:56 -0000 1.1 --- XmlCollectionSerialiser.cs 16 Nov 2004 04:41:19 -0000 1.2 *************** *** 17,20 **** --- 17,22 ---- foreach (object element in ((IEnumerable)value)) { + if (element == null) continue; + ReflectorTypeAttribute attribute = ReflectorTypeAttribute.GetAttribute(element); if (attribute == null) *************** *** 31,34 **** --- 33,37 ---- } + /// Todo: convert to element type public override object Read(XmlNode node, Type instanceType, NetReflectorTypeTable table) { Index: IXmlSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/IXmlSerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IXmlSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.2 --- IXmlSerialiser.cs 16 Nov 2004 04:41:19 -0000 1.3 *************** *** 1,3 **** - using System; using System.Xml; --- 1,2 ---- |
From: Owen R. <exo...@us...> - 2004-11-16 04:41:29
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21969/src/NetReflector/util Modified Files: ReflectorMember.cs StringUtil.cs Log Message: - XmlArraySerialiser now converts xml element to array element type. Patch courtesy of Oane Stienstra. Index: StringUtil.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/StringUtil.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** StringUtil.cs 15 Nov 2004 05:13:03 -0000 1.3 --- StringUtil.cs 16 Nov 2004 04:41:19 -0000 1.4 *************** *** 1,3 **** - using System; using System.Collections; using System.Globalization; --- 1,2 ---- Index: ReflectorMember.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/ReflectorMember.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ReflectorMember.cs 6 Jul 2004 05:13:23 -0000 1.3 --- ReflectorMember.cs 16 Nov 2004 04:41:19 -0000 1.4 *************** *** 1,5 **** using System; using System.Reflection; - using System.Xml; namespace Exortech.NetReflector.Util --- 1,4 ---- *************** *** 17,61 **** } ! public abstract Type MemberType ! { ! get; ! } ! protected abstract MemberInfo MemberInfo ! { ! get; ! } public abstract void SetValue(object instance, object value); public abstract object GetValue(object instance); - public bool IsCompatibleType(object instance) - { - return (MemberType.IsInstanceOfType(instance) || instance == null); - } - protected object ConvertToMemberType(object value) { ! if (! IsCompatibleType(value)) { ! try ! { ! if (MemberType.IsSubclassOf(typeof(Enum))) ! { ! value = Enum.Parse(MemberType, value.ToString(), true); ! } ! else ! { ! value = Convert.ChangeType(value, MemberType); ! } ! } ! catch (Exception ex) ! { ! throw new NetReflectorException(String.Format ! ("Cannot set reflected property '{0}' because of inconvertible types: {1} -> {2}", ! MemberName, value.GetType(), MemberType), ex); ! } } - return value; } --- 16,38 ---- } ! public abstract Type MemberType { get; } ! protected abstract MemberInfo MemberInfo { get; } public abstract void SetValue(object instance, object value); public abstract object GetValue(object instance); protected object ConvertToMemberType(object value) { ! try { ! return new ReflectorTypeConverter().Convert(MemberType, value); ! } ! catch (Exception ex) ! { ! throw new NetReflectorException(String.Format ! ("Cannot set reflected member '{0}' because of inconvertible types: {1} -> {2}", ! MemberName, value.GetType(), MemberType), ex); } } *************** *** 65,71 **** { case MemberTypes.Property: ! return new ReflectorProperty((PropertyInfo)memberInfo); case MemberTypes.Field: ! return new ReflectorField((FieldInfo)memberInfo); default: throw new NotImplementedException("Only Property and Field member types are currently supported"); --- 42,48 ---- { case MemberTypes.Property: ! return new ReflectorProperty((PropertyInfo) memberInfo); case MemberTypes.Field: ! return new ReflectorField((FieldInfo) memberInfo); default: throw new NotImplementedException("Only Property and Field member types are currently supported"); *************** *** 74,78 **** #region ReflectorMember subclasses -- for unifying Member/Field/Property hierarchy ! class ReflectorProperty : ReflectorMember { private PropertyInfo info; --- 51,56 ---- #region ReflectorMember subclasses -- for unifying Member/Field/Property hierarchy ! ! private class ReflectorProperty : ReflectorMember { private PropertyInfo info; *************** *** 111,115 **** } ! class ReflectorField : ReflectorMember { private FieldInfo info; --- 89,93 ---- } ! private class ReflectorField : ReflectorMember { private FieldInfo info; *************** *** 118,122 **** { this.info = fieldInfo; ! } protected override MemberInfo MemberInfo --- 96,100 ---- { this.info = fieldInfo; ! } protected override MemberInfo MemberInfo *************** *** 140,144 **** } } #endregion } ! } --- 118,123 ---- } } + #endregion } ! } \ No newline at end of file |
From: Owen R. <exo...@us...> - 2004-11-16 04:41:28
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21969/src/NetReflector.Test/resources Modified Files: ArrayTestClass.cs CollectionTestClass.cs Log Message: - XmlArraySerialiser now converts xml element to array element type. Patch courtesy of Oane Stienstra. Index: ArrayTestClass.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources/ArrayTestClass.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ArrayTestClass.cs 15 Nov 2004 05:58:57 -0000 1.5 --- ArrayTestClass.cs 16 Nov 2004 04:41:19 -0000 1.6 *************** *** 1,2 **** --- 1,3 ---- + using System; using NUnit.Framework; *************** *** 6,13 **** internal class ArrayTestClass { ! private ElementTestClass[] elements; [ReflectorArray("stringArray", Required=false)] ! public string[] StringArray; [ReflectorArray("elementArray", Required=false)] --- 7,14 ---- internal class ArrayTestClass { ! private ElementTestClass[] elements = new ElementTestClass[0]; [ReflectorArray("stringArray", Required=false)] ! public string[] StringArray = new string[0]; [ReflectorArray("elementArray", Required=false)] *************** *** 18,21 **** --- 19,25 ---- } + [ReflectorArray("days", Required=false)] + public DayOfWeek[] Days = new DayOfWeek[0]; + public static ArrayTestClass Create() { *************** *** 26,45 **** } public static string GetXml() { ! return "<array-test><stringArray><string>1</string><string>2</string><string>3</string></stringArray>" + "<elementArray><element><id>1</id></element><element><id>2</id></element><element><id>3</id></element></elementArray></array-test>"; } public static void AssertEquals(ArrayTestClass expected, ArrayTestClass actual) { Assert.AreEqual(expected.Elements.Length, actual.Elements.Length); ! Assert.AreEqual(((ElementTestClass)expected.Elements[0]).ID, ((ElementTestClass)actual.Elements[0]).ID); ! Assert.AreEqual(((ElementTestClass)expected.Elements[1]).ID, ((ElementTestClass)actual.Elements[1]).ID); ! Assert.AreEqual(((ElementTestClass)expected.Elements[2]).ID, ((ElementTestClass)actual.Elements[2]).ID); Assert.AreEqual(expected.StringArray.Length, actual.StringArray.Length); ! Assert.AreEqual(expected.StringArray[0], actual.StringArray[0]); ! Assert.AreEqual(expected.StringArray[1], actual.StringArray[1]); ! Assert.AreEqual(expected.StringArray[2], actual.StringArray[2]); } } --- 30,68 ---- } + public static ArrayTestClass CreateDays() + { + ArrayTestClass testClass = new ArrayTestClass(); + testClass.Days = new DayOfWeek[] { DayOfWeek.Monday, DayOfWeek.Wednesday, DayOfWeek.Friday }; + return testClass; + } + public static string GetXml() { ! return "<array-test><stringArray><string>1</string><string>2</string><string>3</string></stringArray><days />" + "<elementArray><element><id>1</id></element><element><id>2</id></element><element><id>3</id></element></elementArray></array-test>"; } + public static string GetXmlForDays() + { + return "<array-test><days><day>Monday</day><day>Wednesday</day><day>Friday</day></days></array-test>"; + } + public static void AssertEquals(ArrayTestClass expected, ArrayTestClass actual) { Assert.AreEqual(expected.Elements.Length, actual.Elements.Length); ! for (int i = 0; i < expected.Elements.Length; i++) ! { ! Assert.AreEqual(expected.Elements[i], actual.Elements[i]); ! } Assert.AreEqual(expected.StringArray.Length, actual.StringArray.Length); ! for (int i = 0; i < expected.StringArray.Length; i++) ! { ! Assert.AreEqual(expected.StringArray[i], actual.StringArray[i]); ! } ! Assert.AreEqual(expected.Days.Length, actual.Days.Length); ! for (int i = 0; i < expected.Days.Length; i++) ! { ! Assert.AreEqual(expected.Days[i], actual.Days[i]); ! } } } Index: CollectionTestClass.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources/CollectionTestClass.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** CollectionTestClass.cs 22 Oct 2004 12:45:34 -0000 1.4 --- CollectionTestClass.cs 16 Nov 2004 04:41:19 -0000 1.5 *************** *** 11,15 **** [ReflectorCollection("elements", Required=false)] ! public ArrayList ElementList; [ReflectorCollection("list", InstanceType=typeof(ArrayList), Required=false)] --- 11,15 ---- [ReflectorCollection("elements", Required=false)] ! public ArrayList ElementList = new ArrayList(); [ReflectorCollection("list", InstanceType=typeof(ArrayList), Required=false)] *************** *** 28,31 **** --- 28,39 ---- } + public static CollectionTestClass CreateCollectionContainingNulls() + { + CollectionTestClass target = new CollectionTestClass(); + target.ElementList = new ArrayList(new ElementTestClass[] { ElementTestClass.Create("1"), null, ElementTestClass.Create("3") }); + target.List = new ArrayList(new string[] { "1", null, "3" }); + return target; + } + public static void AssertEquals(CollectionTestClass expected, CollectionTestClass actual) { *************** *** 46,49 **** --- 54,63 ---- } + public static string GetXmlWithMissingNullElements() + { + return "<collectiontest><elements><element><id>1</id></element><element><id>3</id></element></elements>" + + "<list><string>1</string><string>3</string></list></collectiontest>"; + } + public static string GetXmlWithEmbeddedComment() { |
From: Owen R. <exo...@us...> - 2004-11-16 04:41:28
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21969/src/NetReflector Modified Files: NetReflector.csproj Log Message: - XmlArraySerialiser now converts xml element to array element type. Patch courtesy of Oane Stienstra. Index: NetReflector.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflector.csproj,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** NetReflector.csproj 15 Nov 2004 05:58:57 -0000 1.6 --- NetReflector.csproj 16 Nov 2004 04:41:19 -0000 1.7 *************** *** 200,203 **** --- 200,208 ---- /> <File + RelPath = "util\ReflectorTypeConverter.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "util\StringUtil.cs" SubType = "Code" |
From: Owen R. <exo...@us...> - 2004-11-16 04:41:27
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21969/src/NetReflector.Test/Serialisers Modified Files: XmlArraySerialiserTest.cs XmlCollectionSerialiserTest.cs Log Message: - XmlArraySerialiser now converts xml element to array element type. Patch courtesy of Oane Stienstra. Index: XmlCollectionSerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlCollectionSerialiserTest.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlCollectionSerialiserTest.cs 22 Oct 2004 12:45:33 -0000 1.2 --- XmlCollectionSerialiserTest.cs 16 Nov 2004 04:41:18 -0000 1.3 *************** *** 15,20 **** } ! // collection containing nulls? ! [Test] public void ReadCollectionTestClass() --- 15,25 ---- } ! [Test] ! public void WriteCollectionTestClassContainingNulls() ! { ! string xml = NetReflector.Write(CollectionTestClass.CreateCollectionContainingNulls()); ! Assert.AreEqual(CollectionTestClass.GetXmlWithMissingNullElements(), xml); ! } ! [Test] public void ReadCollectionTestClass() Index: XmlArraySerialiserTest.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers/XmlArraySerialiserTest.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XmlArraySerialiserTest.cs 22 Oct 2004 12:45:33 -0000 1.3 --- XmlArraySerialiserTest.cs 16 Nov 2004 04:41:18 -0000 1.4 *************** *** 34,37 **** --- 34,44 ---- } + [Test] + public void ReadArrayTestClassWithEnums() + { + ArrayTestClass actual = (ArrayTestClass)NetReflector.Read(ArrayTestClass.GetXmlForDays(), table); + ArrayTestClass.AssertEquals(ArrayTestClass.CreateDays(), actual); + } + private string XmlEncode(string value) { |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:37
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector Modified Files: NetReflector.csproj Removed Files: XmlDocumentationGenerator.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder --- XmlDocumentationGenerator.cs DELETED --- Index: NetReflector.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/NetReflector.csproj,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NetReflector.csproj 15 Nov 2004 05:13:02 -0000 1.5 --- NetReflector.csproj 15 Nov 2004 05:58:57 -0000 1.6 *************** *** 105,113 **** /> <File - RelPath = "XmlDocumentationGenerator.cs" - SubType = "Code" - BuildAction = "Compile" - /> - <File RelPath = "attributes\IReflectorAttribute.cs" SubType = "Code" --- 105,108 ---- *************** *** 140,143 **** --- 135,143 ---- /> <File + RelPath = "Generators\XmlDocumentationGenerator.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Generators\XsdGenerator.cs" SubType = "Code" |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:37
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector.Test/resources Modified Files: ArrayTestClass.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder Index: ArrayTestClass.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/resources/ArrayTestClass.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ArrayTestClass.cs 22 Oct 2004 12:45:34 -0000 1.4 --- ArrayTestClass.cs 15 Nov 2004 05:58:57 -0000 1.5 *************** *** 1,5 **** using NUnit.Framework; - using System; - using System.Collections; namespace Exortech.NetReflector.Test --- 1,3 ---- |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:37
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflectorDocumenterTask In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflectorDocumenterTask Modified Files: NetReflectorDocumenterTask.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder Index: NetReflectorDocumenterTask.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflectorDocumenterTask/NetReflectorDocumenterTask.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NetReflectorDocumenterTask.cs 15 Nov 2004 05:13:04 -0000 1.1 --- NetReflectorDocumenterTask.cs 15 Nov 2004 05:58:57 -0000 1.2 *************** *** 1,5 **** - using System; using System.IO; using Exortech.NetReflector; using NAnt.Core; using NAnt.Core.Attributes; --- 1,5 ---- using System.IO; using Exortech.NetReflector; + using Exortech.NetReflector.Generators; using NAnt.Core; using NAnt.Core.Attributes; |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:37
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector/Serialisers Modified Files: XmlArraySerialiser.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder Index: XmlArraySerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlArraySerialiser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** XmlArraySerialiser.cs 5 Nov 2003 08:29:56 -0000 1.1 --- XmlArraySerialiser.cs 15 Nov 2004 05:58:57 -0000 1.2 *************** *** 1,7 **** - using Exortech.NetReflector.Util; using System; - using System.Collections; 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 |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:36
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector.Test Modified Files: NetReflectorTest.csproj Log Message: moved XmlDocumentationGenerator and Test to Generators folder Index: NetReflectorTest.csproj =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector.Test/NetReflectorTest.csproj,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** NetReflectorTest.csproj 15 Nov 2004 05:13:00 -0000 1.11 --- NetReflectorTest.csproj 15 Nov 2004 05:58:56 -0000 1.12 *************** *** 116,119 **** --- 116,124 ---- /> <File + RelPath = "Generators\XmlDocumentationGeneratorTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Generators\XsdGeneratorTest.cs" SubType = "Code" *************** *** 191,199 **** /> <File - RelPath = "Serialisers\XmlDocumentationGeneratorTest.cs" - SubType = "Code" - BuildAction = "Compile" - /> - <File RelPath = "Serialisers\XmlMemberSerialiserTest.cs" SubType = "Code" --- 196,199 ---- |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:23
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector.Test/Serialisers Removed Files: XmlDocumentationGeneratorTest.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder --- XmlDocumentationGeneratorTest.cs DELETED --- |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:23
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Generators In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector/Generators Added Files: XmlDocumentationGenerator.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder --- NEW FILE: XmlDocumentationGenerator.cs --- using System; using System.IO; using System.Xml; namespace Exortech.NetReflector.Generators { public class XmlDocumentationGenerator { private NetReflectorTypeTable table; private XmlMemberDocumentationGenerator memberGenerator; public XmlDocumentationGenerator(NetReflectorTypeTable table) : this(table, new XmlMemberDocumentationGenerator()) { } public XmlDocumentationGenerator(NetReflectorTypeTable table, XmlMemberDocumentationGenerator memberGenerator) { this.table = table; this.memberGenerator = memberGenerator; } public void Write(TextWriter writer) { Write(new XmlTextWriter(writer)); } public void WriteIndented(TextWriter writer) { XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; Write(xmlWriter); } public void Write(XmlWriter writer) { writer.WriteStartDocument(); writer.WriteStartElement("netreflector"); try { WriteTypes(writer); } finally { writer.WriteEndDocument(); } } private void WriteTypes(XmlWriter writer) { foreach (IXmlTypeSerialiser typeSerialiser in table) { writer.WriteStartElement("reflectortype"); writer.WriteElementString("name", typeSerialiser.Type.Name); writer.WriteElementString("namespace", typeSerialiser.Type.Namespace); writer.WriteElementString("reflectorName", typeSerialiser.Attribute.Name); WriteIfNotNull(writer, "description", typeSerialiser.Attribute.Description); memberGenerator.Write(writer, typeSerialiser.MemberSerialisers); writer.WriteEndElement(); } } public static void WriteIfNotNull(XmlWriter writer, string elementName, string output) { if (output != null) writer.WriteElementString(elementName, output); } public static void WriteIfNotNull(XmlWriter writer, string elementName, Type type) { if (type != null) writer.WriteElementString(elementName, type.Name); } } public class XmlMemberDocumentationGenerator { public virtual void Write(XmlWriter writer, IXmlMemberSerialiser[] memberSerialisers) { writer.WriteStartElement("members"); foreach (IXmlMemberSerialiser memberSerialiser in memberSerialisers) { writer.WriteStartElement("member"); writer.WriteElementString("name", memberSerialiser.ReflectorMember.Name); writer.WriteElementString("reflectorName", memberSerialiser.Attribute.Name); XmlDocumentationGenerator.WriteIfNotNull(writer, "description", memberSerialiser.Attribute.Description); writer.WriteElementString("required", memberSerialiser.Attribute.Required.ToString()); XmlDocumentationGenerator.WriteIfNotNull(writer, "instanceType", memberSerialiser.Attribute.InstanceType); XmlDocumentationGenerator.WriteIfNotNull(writer, "instanceTypeKey", memberSerialiser.Attribute.InstanceTypeKey); writer.WriteEndElement(); } writer.WriteEndElement(); } } } |
From: Owen R. <exo...@us...> - 2004-11-15 05:59:07
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector.Test/Generators In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10946/src/NetReflector.Test/Generators Added Files: XmlDocumentationGeneratorTest.cs Log Message: moved XmlDocumentationGenerator and Test to Generators folder --- NEW FILE: XmlDocumentationGeneratorTest.cs --- using System.IO; using System.Reflection; using System.Xml; using Exortech.NetReflector.Generators; using NUnit.Framework; namespace Exortech.NetReflector.Test.Generators { [TestFixture] public class XmlDocumentationGeneratorTest { [Test] public void ShouldProduceXmlDocumentationOfReflectorTypes() { NetReflectorTypeTable table = new NetReflectorTypeTable(); table.Add(typeof (TestClass)); StringWriter writer = new StringWriter(); XmlDocumentationGenerator generator = new XmlDocumentationGenerator(table, new XmlMemberDocumentationGeneratorExtension()); generator.Write(writer); string expectedXml = @"<?xml version=""1.0"" encoding=""utf-16""?><netreflector><reflectortype><name>TestClass</name><namespace>Exortech.NetReflector.Test</namespace><reflectorName>reflectTest</reflectorName>" + "<description>Class used for unit testing NetReflector.</description></reflectortype></netreflector>"; Assert.AreEqual(expectedXml, writer.ToString()); } [Test] public void ShouldProduceXmlDocumentationOfReflectorTypesButNotIncludeEmptyDescriptions() { NetReflectorTypeTable table = new NetReflectorTypeTable(); table.Add(typeof (TestSubClass)); StringWriter writer = new StringWriter(); XmlDocumentationGenerator generator = new XmlDocumentationGenerator(table, new XmlMemberDocumentationGeneratorExtension()); generator.Write(writer); string expectedXml = @"<?xml version=""1.0"" encoding=""utf-16""?><netreflector><reflectortype><name>TestSubClass</name><namespace>Exortech.NetReflector.Test</namespace><reflectorName>sub</reflectorName></reflectortype></netreflector>"; Assert.AreEqual(expectedXml, writer.ToString()); } [Test] public void ShouldProduceDocumentationForTypeMembers() { StringWriter writer = new StringWriter(); XmlMemberDocumentationGenerator generator = new XmlMemberDocumentationGenerator(); generator.Write(new XmlTextWriter(writer), new IXmlMemberSerialiser[] {CreateSerialiser("Name"), CreateSerialiser("Count")}); string expectedXml = @"<members><member><name>Name</name><reflectorName>name</reflectorName><description>name of the test class</description><required>True</required></member>" + "<member><name>Count</name><reflectorName>count</reflectorName><required>True</required></member></members>"; Assert.AreEqual(expectedXml, writer.ToString()); } private IXmlMemberSerialiser CreateSerialiser(string name) { MemberInfo member = typeof (TestClass).GetMember(name)[0]; return (IXmlMemberSerialiser) ReflectorPropertyAttribute.GetAttribute(member).CreateSerialiser(member); } private class XmlMemberDocumentationGeneratorExtension : XmlMemberDocumentationGenerator { public override void Write(XmlWriter writer, IXmlMemberSerialiser[] memberSerialisers) { // do nothing } } } } |
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/attributes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2560/src/NetReflector/attributes Modified Files: IReflectorAttribute.cs ReflectorArrayAttribute.cs ReflectorCollectionAttribute.cs ReflectorHashAttribute.cs ReflectorTypeAttribute.cs Log Message: - working on XmlDocumentationGenerator - started Xsd generation for NetReflector - lots of FxCop inspired improvements Index: IReflectorAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/IReflectorAttribute.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IReflectorAttribute.cs 6 Jul 2004 05:13:23 -0000 1.2 --- IReflectorAttribute.cs 15 Nov 2004 05:13:02 -0000 1.3 *************** *** 1,4 **** - using System; - namespace Exortech.NetReflector { --- 1,2 ---- Index: ReflectorCollectionAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/ReflectorCollectionAttribute.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReflectorCollectionAttribute.cs 6 Jul 2004 05:13:23 -0000 1.4 --- ReflectorCollectionAttribute.cs 15 Nov 2004 05:13:03 -0000 1.5 *************** *** 1,11 **** using System; - using System.Collections; using System.Reflection; - using System.Xml; namespace Exortech.NetReflector { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)] ! public class ReflectorCollectionAttribute : ReflectorPropertyAttribute { public ReflectorCollectionAttribute(string name) : base(name) --- 1,9 ---- using System; using System.Reflection; namespace Exortech.NetReflector { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)] ! public sealed class ReflectorCollectionAttribute : ReflectorPropertyAttribute { public ReflectorCollectionAttribute(string name) : base(name) Index: ReflectorTypeAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/ReflectorTypeAttribute.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ReflectorTypeAttribute.cs 6 Jul 2004 05:13:23 -0000 1.3 --- ReflectorTypeAttribute.cs 15 Nov 2004 05:13:03 -0000 1.4 *************** *** 1,4 **** using System; - using System.Reflection; using System.Xml; --- 1,3 ---- *************** *** 6,10 **** { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] ! public class ReflectorTypeAttribute : Attribute, IReflectorAttribute { private string name; --- 5,9 ---- { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] ! public sealed class ReflectorTypeAttribute : Attribute, IReflectorAttribute { private string name; *************** *** 28,32 **** } ! public virtual IXmlSerialiser CreateSerialiser(Type type) { return new XmlTypeSerialiser(type, this); --- 27,31 ---- } ! public IXmlSerialiser CreateSerialiser(Type type) { return new XmlTypeSerialiser(type, this); Index: ReflectorArrayAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/ReflectorArrayAttribute.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ReflectorArrayAttribute.cs 6 Jul 2004 05:13:23 -0000 1.3 --- ReflectorArrayAttribute.cs 15 Nov 2004 05:13:03 -0000 1.4 *************** *** 1,11 **** using System; - using System.Collections; using System.Reflection; - using System.Xml; namespace Exortech.NetReflector { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)] ! public class ReflectorArrayAttribute : ReflectorCollectionAttribute { public ReflectorArrayAttribute(string name) : base(name) --- 1,9 ---- using System; using System.Reflection; namespace Exortech.NetReflector { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)] ! public sealed class ReflectorArrayAttribute : ReflectorPropertyAttribute { public ReflectorArrayAttribute(string name) : base(name) Index: ReflectorHashAttribute.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/attributes/ReflectorHashAttribute.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReflectorHashAttribute.cs 6 Jul 2004 05:13:23 -0000 1.4 --- ReflectorHashAttribute.cs 15 Nov 2004 05:13:03 -0000 1.5 *************** *** 1,11 **** using System; - using System.Collections; using System.Reflection; - using System.Xml; namespace Exortech.NetReflector { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)] ! public class ReflectorHashAttribute : ReflectorPropertyAttribute { private string key; --- 1,9 ---- using System; using System.Reflection; namespace Exortech.NetReflector { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)] ! public sealed class ReflectorHashAttribute : ReflectorPropertyAttribute { private string key; |
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2560/src/NetReflector/Serialisers Modified Files: IXmlMemberSerialiser.cs IXmlSerialiser.cs IXmlTypeSerialiser.cs XmlMemberSerialiser.cs XmlTypeSerialiser.cs Log Message: - working on XmlDocumentationGenerator - started Xsd generation for NetReflector - lots of FxCop inspired improvements Index: XmlMemberSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlMemberSerialiser.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XmlMemberSerialiser.cs 3 Aug 2004 10:40:40 -0000 1.5 --- XmlMemberSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.6 *************** *** 17,21 **** } ! public IReflectorAttribute Attribute { get { return attribute; } --- 17,21 ---- } ! public ReflectorPropertyAttribute Attribute { get { return attribute; } Index: IXmlMemberSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/IXmlMemberSerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IXmlMemberSerialiser.cs 6 Jul 2004 05:13:23 -0000 1.2 --- IXmlMemberSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.3 *************** *** 1,3 **** - using System; using Exortech.NetReflector.Util; --- 1,2 ---- *************** *** 6,9 **** --- 5,9 ---- public interface IXmlMemberSerialiser : IXmlSerialiser { + ReflectorPropertyAttribute Attribute { get; } ReflectorMember ReflectorMember { get; } void SetValue(object instance, object value); Index: IXmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/IXmlTypeSerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IXmlTypeSerialiser.cs 6 Jul 2004 05:13:23 -0000 1.2 --- IXmlTypeSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.3 *************** *** 6,9 **** --- 6,10 ---- { Type Type { get; } + ReflectorTypeAttribute Attribute { get; } IXmlMemberSerialiser[] MemberSerialisers { get; } } Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XmlTypeSerialiser.cs 6 Jul 2004 05:13:23 -0000 1.2 --- XmlTypeSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.3 *************** *** 19,23 **** } ! public IReflectorAttribute Attribute { get { return attribute; } --- 19,23 ---- } ! public ReflectorTypeAttribute Attribute { get { return attribute; } Index: IXmlSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/IXmlSerialiser.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** IXmlSerialiser.cs 5 Nov 2003 08:29:56 -0000 1.1 --- IXmlSerialiser.cs 15 Nov 2004 05:13:02 -0000 1.2 *************** *** 6,10 **** public interface IXmlSerialiser { - IReflectorAttribute Attribute { get; } void Write(XmlWriter writer, object target); object Read(XmlNode node, NetReflectorTypeTable table); --- 6,9 ---- |
From: Owen R. <exo...@us...> - 2004-11-15 05:13:45
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2560/src/NetReflector/util Modified Files: ReflectionUtil.cs StringUtil.cs XmlUtil.cs Log Message: - working on XmlDocumentationGenerator - started Xsd generation for NetReflector - lots of FxCop inspired improvements Index: StringUtil.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/StringUtil.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StringUtil.cs 22 Oct 2004 12:45:34 -0000 1.2 --- StringUtil.cs 15 Nov 2004 05:13:03 -0000 1.3 *************** *** 1,10 **** using System; using System.Collections; using System.Text; namespace Exortech.NetReflector.Util { ! public class StringUtil { public static bool EqualsIgnoreCase(string a, string b) { --- 1,14 ---- using System; using System.Collections; + using System.Globalization; using System.Text; namespace Exortech.NetReflector.Util { ! public sealed class StringUtil { + // Static utility class + private StringUtil() { } + public static bool EqualsIgnoreCase(string a, string b) { *************** *** 23,26 **** --- 27,35 ---- return builder.ToString(); } + + public static string Format(string format, params object[] args) + { + return string.Format(CultureInfo.InvariantCulture, format, args); + } } } Index: ReflectionUtil.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/ReflectionUtil.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ReflectionUtil.cs 6 Jul 2004 05:13:23 -0000 1.2 --- ReflectionUtil.cs 15 Nov 2004 05:13:03 -0000 1.3 *************** *** 3,8 **** namespace Exortech.NetReflector.Util { ! public class ReflectionUtil { public static bool IsCommonType(Type t) { --- 3,11 ---- namespace Exortech.NetReflector.Util { ! public sealed class ReflectionUtil { + // Static utility class + private ReflectionUtil() { } + public static bool IsCommonType(Type t) { *************** *** 18,22 **** catch (Exception e) { ! string message = string.Format("Unable to create an instance of reflected type '{0}'. Please verify that this object has a default constructor.", type); throw new NetReflectorException(message, e); } --- 21,25 ---- catch (Exception e) { ! string message = StringUtil.Format("Unable to create an instance of reflected type '{0}'. Please verify that this object has a default constructor.", type); throw new NetReflectorException(message, e); } Index: XmlUtil.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/util/XmlUtil.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** XmlUtil.cs 5 Nov 2003 08:29:56 -0000 1.1 --- XmlUtil.cs 15 Nov 2004 05:13:03 -0000 1.2 *************** *** 1,3 **** - using System; using System.Xml; --- 1,2 ---- |