aboutsummaryrefslogtreecommitdiff
path: root/csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2008-10-22 07:11:17 +0100
committerJon Skeet <skeet@pobox.com>2008-10-22 07:11:17 +0100
commite60ce8bfafca616ed4fd430ae4f82360de165e80 (patch)
treecb1a82655772f4995c02debb31cfeb208960acf1 /csharp/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
parent7f90d8ee57d4af4215bc31dbb07726c023c5e047 (diff)
downloadprotobuf-e60ce8bfafca616ed4fd430ae4f82360de165e80.tar.gz
protobuf-e60ce8bfafca616ed4fd430ae4f82360de165e80.tar.bz2
protobuf-e60ce8bfafca616ed4fd430ae4f82360de165e80.zip
Final commit before changing layout
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");
}