/Mono.Cecil/IGenericInstance.cs
http://github.com/jbevain/cecil · C# · 48 lines · 29 code · 10 blank · 9 comment · 4 complexity · d8513e35cc2ceeb0b7f2ef439502d762 MD5 · raw file
- //
- // Author:
- // Jb Evain (jbevain@gmail.com)
- //
- // Copyright (c) 2008 - 2015 Jb Evain
- // Copyright (c) 2008 - 2011 Novell, Inc.
- //
- // Licensed under the MIT/X11 license.
- //
- using System.Text;
- using Mono.Collections.Generic;
- namespace Mono.Cecil {
- public interface IGenericInstance : IMetadataTokenProvider {
- bool HasGenericArguments { get; }
- Collection<TypeReference> GenericArguments { get; }
- }
- static partial class Mixin {
- public static bool ContainsGenericParameter (this IGenericInstance self)
- {
- var arguments = self.GenericArguments;
- for (int i = 0; i < arguments.Count; i++)
- if (arguments [i].ContainsGenericParameter)
- return true;
- return false;
- }
- public static void GenericInstanceFullName (this IGenericInstance self, StringBuilder builder)
- {
- builder.Append ("<");
- var arguments = self.GenericArguments;
- for (int i = 0; i < arguments.Count; i++) {
- if (i > 0)
- builder.Append (",");
- builder.Append (arguments [i].FullName);
- }
- builder.Append (">");
- }
- }
- }