diff options
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/PropertyDefinitionExtensions.cs')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/PropertyDefinitionExtensions.cs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Xamarin.Forms.Build.Tasks/PropertyDefinitionExtensions.cs b/Xamarin.Forms.Build.Tasks/PropertyDefinitionExtensions.cs new file mode 100644 index 00000000..472a5658 --- /dev/null +++ b/Xamarin.Forms.Build.Tasks/PropertyDefinitionExtensions.cs @@ -0,0 +1,33 @@ +using Mono.Cecil; + +namespace Xamarin.Forms.Build.Tasks +{ + static class PropertyDefinitionExtensions + { + // public static PropertyDefinition MakeGeneric (this PropertyDefinition self, GenericInstanceType declaringTypeReference) + // { + // if (declaringTypeReference == null) + // throw new ArgumentNullException ("declaringTypeReference"); + // if (self == null) + // throw new ArgumentNullException ("self"); + // + // var propertyType = declaringTypeReference.GenericArguments[((GenericParameter)self.PropertyType).Position]; + // self.PropertyType = propertyType; + // self.SetMethod = self.SetMethod.MakeGeneric (propertyType).Resolve (); + // self.GetMethod.ReturnType = propertyType; + // + // return self; + // } + + public static TypeReference ResolveGenericPropertyType(this PropertyDefinition self, + TypeReference declaringTypeReference) + { + if (self.PropertyType.IsGenericParameter) + { + return + ((GenericInstanceType)declaringTypeReference).GenericArguments[((GenericParameter)self.PropertyType).Position]; + } + return self.PropertyType; + } + } +}
\ No newline at end of file |