Applied On Fri, Jul 31, 2009 at 6:18 AM, thuannguy <[email protected]> wrote:
> > Oops, Since I have been very busy on other projects for a month, plus > the fact that gmail is not my daily email application, I haven't > noticed your reply. I apologize for that. I just uploaded the patch > which works for me. > > On Jun 22, 10:22 am, Ayende Rahien <[email protected]> wrote: > > Can you attach the patch?I can't get it from gmail as it is now. > > > > > > > > On Mon, Jun 15, 2009 at 6:07 AM, thuannguy <[email protected]> wrote: > > > > > Recently I updated Rhino Service Bus code and suddenly my code > > > failed :-D After investigating a bit, I found out it is broken > > > because of this commit: > > > > > Revision: 2168 > > > Author: ayenderahien > > > Date: 1:26:43 AM, Tuesday, June 02, 2009 > > > Message: > > > Patch from João P. Bragança - for Version Information Included > > > with Generic Types > > > ---- > > > Modified : /trunk/esb/Rhino.ServiceBus/Impl/DefaultReflection.cs > > > Modified : /trunk/esb/Rhino.ServiceBus.Tests/ > > > DefaultReflectionTests.cs > > > > > The case is simple: I have a SerializableDictionary which is defined > > > in the "AAAAA.Common" assembly. > > > > > defaultReflection.GetAssemblyQualifiedNameWithoutVersion(typeof > > > (SerializableDictionary<string,string>)) returns: > > > > > "System.Collections.SerializableDictionary`2[[string],[string]], > > > AAAAA.Common" > > > > > but the correct one should be: > > > > > "System.Collections.SerializableDictionary`2[[System.String], > > > [System.String]], AAAAA.Common" > > > > > You can use Type.GetType() to test: the former returns null while the > > > latter returns the correct Type object. > > > > > Below is the quick fix I made which work for me. However, as I pointed > > > out in > > > > > > Gets_assembly_name_without_version_for_generic_types_with_more_than_one_type_parameter_in_local_assemblies > > > test case, this is not a complete fix. > > > > > > //-----------------------------------------------------------------------------------------------------------------------------------------------------------------// > > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Convertors/ThrowingWireEcryptedStringConvertor.cs > > > =================================================================== > > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Convertors/ThrowingWireEcryptedStringConvertor.cs > > > (revision 2203) > > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Convertors/ThrowingWireEcryptedStringConvertor.cs > > > (working copy) > > > @@ -17,7 +17,7 @@ > > > > > public WireEcryptedString FromElement(XElement element) > > > { > > > - var value = element.Element(XName.Get("Value", > > > "string")); > > > + var value = element.Element(XName.Get("Value", > > > "System.String")); > > > if(value==null) > > > throw new SerializationException("<WireEcryptedString> > > > did not have mandatory <Value> element"); > > > return new WireEcryptedString > > > > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Convertors/WireEcryptedStringConvertor.cs > > > =================================================================== > > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Convertors/WireEcryptedStringConvertor.cs (revision > > > 2203) > > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Convertors/WireEcryptedStringConvertor.cs (working > > > copy) > > > @@ -24,7 +24,7 @@ > > > > > public WireEcryptedString FromElement(XElement element) > > > { > > > - var value = element.Element(XName.Get("Value","string")); > > > + var value = element.Element(XName.Get > > > ("Value","System.String")); > > > if(value==null) > > > throw new ArgumentException("element must contain > > > <value> element"); > > > > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Impl/DefaultReflection.cs > > > =================================================================== > > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Impl/DefaultReflection.cs (revision 2203) > > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus/Impl/DefaultReflection.cs (working copy) > > > @@ -29,20 +29,20 @@ > > > wellKnownTypeNameToType = new Dictionary<string, Type>(); > > > typeToWellKnownTypeName = new Dictionary<Type, string> > > > { > > > - {typeof (string), "string"}, > > > - {typeof (int), "int"}, > > > - {typeof (byte), "byte"}, > > > - {typeof (bool), "bool"}, > > > - {typeof (DateTime), "datetime"}, > > > - {typeof (TimeSpan), "timespan"}, > > > - {typeof (decimal), "decimal"}, > > > - {typeof (float), "float"}, > > > - {typeof (double), "double"}, > > > - {typeof (char), "char"}, > > > - {typeof (Guid), "guid"}, > > > - {typeof (Uri), "uri"}, > > > - {typeof (short), "short"}, > > > - {typeof (long), "long"}, > > > + {typeof (string), typeof (string).FullName}, > > > + {typeof (int), typeof (int).FullName}, > > > + {typeof (byte), typeof (byte).FullName}, > > > + {typeof (bool), typeof (bool).FullName}, > > > + {typeof (DateTime), typeof (DateTime).FullName}, > > > + {typeof (TimeSpan), typeof (TimeSpan).FullName}, > > > + {typeof (decimal), typeof (decimal).FullName}, > > > + {typeof (float), typeof (float).FullName}, > > > + {typeof (double), typeof (double).FullName}, > > > + {typeof (char), typeof (char).FullName}, > > > + {typeof (Guid), typeof (Guid).FullName}, > > > + {typeof (Uri), typeof (Uri).FullName}, > > > + {typeof (short), typeof (short).FullName}, > > > + {typeof (long), typeof (long).FullName}, > > > {typeof(byte[]), "binary"} > > > }; > > > foreach (var pair in typeToWellKnownTypeName) > > > > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus.Tests/DefaultReflectionTests.cs > > > =================================================================== > > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus.Tests/DefaultReflectionTests.cs (revision 2203) > > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus.Tests/DefaultReflectionTests.cs (working copy) > > > @@ -78,6 +78,7 @@ > > > var output = > > > reflection.GetAssemblyQualifiedNameWithoutVersion(typeof > > > (GenericConsumer<SomeMsg>)); > > > > > Assert.DoesNotContain > > > ("Rhino.ServiceBus.Tests,Version=", output.Replace(" ", "")); > > > + Assert.NotNull(Type.GetType(output)); // still > > > fail!!! > > > } > > > [Fact] > > > public void > > > Gets_assembly_name_with_more_than_one_type_parameter() > > > @@ -86,7 +87,18 @@ > > > Assert.Equal( > > > typeof(Dictionary<object, > > > object>).AssemblyQualifiedName, > > > name); > > > + var type = Type.GetType(name); > > > } > > > + > > > + [Fact] > > > + public void > > > > > > Gets_assembly_name_without_version_for_generic_types_with_more_than_one_type_parameter_in_local_assemblies > > > () > > > + { > > > + string name = > > > reflection.GetAssemblyQualifiedNameWithoutVersion(typeof > > > (TestDictionary<string, string>)); > > > + var type = Type.GetType(name); > > > + Assert.NotNull(type); // fail if not apply my fix!!! > > > + } > > > + > > > + > > > public class SomeMsg{} > > > public class SomeMsgConsumer:GenericConsumer<SomeMsg>{} > > > public class GenericConsumer<T>:ConsumerOf<T> > > > @@ -148,6 +160,10 @@ > > > } > > > } > > > } > > > + public class TestDictionary<T, TK> : Dictionary<T, TK> > > > + { > > > > > + } > > > + > > > > > } > > > > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus.Tests/When_Security_Is_Specified_In_Config.cs > > > =================================================================== > > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus.Tests/When_Security_Is_Specified_In_Config.cs > > > (revision 2203) > > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/ > > > Rhino.ServiceBus.Tests/When_Security_Is_Specified_In_Config.cs > > > (working copy) > > > @@ -54,7 +54,7 @@ > > > > > public const string encryptedMessage = > > > @"<?xml version=""1.0"" encoding=""utf-8""?> > > > -<esb:messages xmlns:esb=""http://servicebus.hibernatingrhinos.com/ > > > 2008/12/20/esb"" > > > > > > xmlns:tests.classwithsecretfield=""Rhino.ServiceBus.Tests.When_Security_Is_Specified_In_Config > > > +ClassWithSecretField, Rhino.ServiceBus.Tests"" > > > > > > xmlns:datastructures.wireecryptedstring=""Rhino.ServiceBus.DataStructures.WireEcryptedString, > > > Rhino.ServiceBus"" xmlns:string=""string""> > > > +<esb:messages xmlns:esb=""http://servicebus.hibernatingrhinos.com/ > > > 2008/12/20/esb"" > > > > > > xmlns:tests.classwithsecretfield=""Rhino.ServiceBus.Tests.When_Security_Is_Specified_In_Config > > > +ClassWithSecretField, Rhino.ServiceBus.Tests"" > > > > > > xmlns:datastructures.wireecryptedstring=""Rhino.ServiceBus.DataStructures.WireEcryptedString, > > > Rhino.ServiceBus"" xmlns:string=""System.String""> > > > <tests.classwithsecretfield:ClassWithSecretField> > > > <datastructures.wireecryptedstring:ShouldBeEncrypted> > > > <string:Value > > > iv=""0yL9+t0uyDy9NeP7CU1Wow=="">q9a10IFuRxrzFoZewfdOyg==</ > > > string:Value> > > > @@ -84,7 +84,7 @@ > > > .Element(XName.Get("messages", "http:// > > > servicebus.hibernatingrhinos.com/2008/12/20/esb")) > > > .Element(XName.Get > > > > > > ("ClassWithSecretField","Rhino.ServiceBus.Tests.When_Security_Is_Specified_In_Config > > > +ClassWithSecretField, Rhino.ServiceBus.Tests")) > > > .Element(XName.Get > > > > ("ShouldBeEncrypted","Rhino.ServiceBus.DataStructures.WireEcryptedString, > > > Rhino.ServiceBus")) > > > - .Element(XName.Get("Value","string")) > > > + .Element(XName.Get("Value","System.String")) > > > > ... > > > > read more »- Hide quoted text - > > > > - Show quoted text - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
