aboutsummaryrefslogtreecommitdiff
path: root/csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs')
-rw-r--r--csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs9
1 files changed, 6 insertions, 3 deletions
diff --git a/csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs b/csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
index ad9e1659..c10936d4 100644
--- a/csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
+++ b/csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
@@ -39,10 +39,13 @@ namespace Google.ProtocolBuffers.FieldAccess {
}
internal SinglePrimitiveAccessor(string name) {
- PropertyInfo messageProperty = typeof(TMessage).GetProperty(name);
- PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name);
+
+ string propertyName = name == typeof(TMessage).Name ? name + "_" : name;
+ PropertyInfo messageProperty = typeof(TMessage).GetProperty(propertyName);
+ PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name); // FIXME!
+ if (builderProperty == null) builderProperty = typeof(TBuilder).GetProperty(propertyName); // FIXME!
PropertyInfo hasProperty = typeof(TMessage).GetProperty("Has" + name);
- MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name);
+ MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name, Type.EmptyTypes);
if (messageProperty == null || builderProperty == null || hasProperty == null || clearMethod == null) {
throw new ArgumentException("Not all required properties/methods available");
}