From 3cf3315370c3aff09353bb0bf3808d67c9e92eda Mon Sep 17 00:00:00 2001 From: csharptest Date: Wed, 10 Oct 2012 19:20:44 -0500 Subject: [PATCH] Fix for GetProperty(string, Type[]) incompatible with Silverlight --- .../FieldAccess/RepeatedPrimitiveAccessor.cs | 6 +++--- .../FieldAccess/SinglePrimitiveAccessor.cs | 12 ++++-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs b/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs index 612e491954..fd2c72b16f 100644 --- a/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs +++ b/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs @@ -66,9 +66,9 @@ namespace Google.ProtocolBuffers.FieldAccess internal RepeatedPrimitiveAccessor(string name) { - PropertyInfo messageProperty = typeof(TMessage).GetProperty(name + "List", ReflectionUtil.EmptyTypes); - PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name + "List", ReflectionUtil.EmptyTypes); - PropertyInfo countProperty = typeof(TMessage).GetProperty(name + "Count", ReflectionUtil.EmptyTypes); + PropertyInfo messageProperty = typeof(TMessage).GetProperty(name + "List"); + PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name + "List"); + PropertyInfo countProperty = typeof(TMessage).GetProperty(name + "Count"); MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name, EmptyTypes); getElementMethod = typeof(TMessage).GetMethod("Get" + name, new Type[] {typeof(int)}); clrType = getElementMethod.ReturnType; diff --git a/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs b/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs index 088b93fcb7..7d20ea756b 100644 --- a/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs +++ b/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs @@ -58,14 +58,10 @@ namespace Google.ProtocolBuffers.FieldAccess internal SinglePrimitiveAccessor(string name) { - PropertyInfo messageProperty = typeof(TMessage).GetProperty(name, ReflectionUtil.EmptyTypes); - PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name, ReflectionUtil.EmptyTypes); - if (builderProperty == null) - { - builderProperty = typeof(TBuilder).GetProperty(name, ReflectionUtil.EmptyTypes); - } - PropertyInfo hasProperty = typeof(TMessage).GetProperty("Has" + name, ReflectionUtil.EmptyTypes); - MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name, ReflectionUtil.EmptyTypes); + PropertyInfo messageProperty = typeof(TMessage).GetProperty(name, null, ReflectionUtil.EmptyTypes); + PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name, null, ReflectionUtil.EmptyTypes); + PropertyInfo hasProperty = typeof(TMessage).GetProperty("Has" + name); + MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name); if (messageProperty == null || builderProperty == null || hasProperty == null || clearMethod == null) { throw new ArgumentException("Not all required properties/methods available");