JniType GetJniType(TypeDefinition typeDef) { var attr = typeDef.CustomAttributes .SingleOrDefault (a => a.AttributeType.FullName == "Android.Runtime.RegisterAttribute"); var name = attr != null ? (string)attr.ConstructorArguments [0].Value : null; if (name == null) return null; JniType jniType; if (!typeMap.TryGetValue (name, out jniType)) { jniType = new JniType (name); typeMap [name] = jniType; } return jniType; }