public static string SignatureFor(MethodReference method)
        {
            if (cache.ContainsKey(method)) return cache[method];

            var sb = new StringBuilder();
            sb.Append(method.ReturnType.ReturnType.FullName);
            sb.Append(" ");
            sb.Append(method.DeclaringType.FullName);
            sb.Append("::");
            sb.Append(method.Name);
            if (method.HasGenericParameters)
            {
                sb.Append("<");
                for (int i = 0; i < method.GenericParameters.Count; i++)
                {
                    if (i > 0)
                        sb.Append(",");
                    sb.Append(method.GenericParameters[i].Name);
                }
                sb.Append(">");
            }
            sb.Append("(");
            if (method.HasParameters)
            {
                int sentinel = method.GetSentinel();
                for (int i = 0; i < method.Parameters.Count; i++)
                {
                    if (i > 0)
                        sb.Append(",");

                    if (i == sentinel)
                        sb.Append("...,");

                    sb.Append(method.Parameters[i].ParameterType.FullName);
                }
            }
            sb.Append(")");
            var result= sb.ToString();
            cache[method] = result;
            return result;
        }
 //based on the code from Mono.Cecil.MethodReference.ToString()
 public static string getMethodParametersSiganature(MethodReference methodReference)
 {
     int sentinel = methodReference.GetSentinel();
     var builder = new StringBuilder();            
     builder.Append("(");
     for (int i = 0; i < methodReference.Parameters.Count; i++)
     {
         if (i > 0)
         {
             builder.Append(",");
         }
         if (i == sentinel)
         {
             builder.Append("...,");
         }
         builder.Append(methodReference.Parameters[i].ParameterType.FullName);
     }
     builder.Append(")");
     return builder.ToString();
 }
Esempio n. 3
0
 public int GetSentinel()
 {
     return(m_function.GetSentinel());
 }
Esempio n. 4
0
		internal static string smethod_0(MethodReference methodReference_0)
		{
			int sentinel = methodReference_0.GetSentinel();
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append(methodReference_0.ReturnType.ReturnType.FullName);
			stringBuilder.Append(" ");
			if (methodReference_0.DeclaringType != null)
			{
				stringBuilder.Append(methodReference_0.DeclaringType.FullName + "::");
			}
			stringBuilder.Append(methodReference_0.Name);
			if (methodReference_0.GenericParameters.Count > 0)
			{
				stringBuilder.Append("<");
			}
			for (int i = 0; i < methodReference_0.GenericParameters.Count; i++)
			{
				if (i > 0)
				{
					stringBuilder.Append(",");
				}
				stringBuilder.Append(methodReference_0.GenericParameters[i].Name);
			}
			if (methodReference_0.GenericParameters.Count > 0)
			{
				stringBuilder.Append(">");
			}
			stringBuilder.Append("(");
			for (int i = 0; i < methodReference_0.Parameters.Count; i++)
			{
				if (i > 0)
				{
					stringBuilder.Append(",");
				}
				if (i == sentinel)
				{
					stringBuilder.Append("...,");
					Logger.LogInfo("Sentinel");
					Debugger.Break();
				}
				if (methodReference_0.Parameters[i].ParameterType != null)
				{
					stringBuilder.Append(methodReference_0.Parameters[i].ParameterType.FullName);
				}
			}
			stringBuilder.Append(")");
			return stringBuilder.ToString();
		}
		static string GetFullName (MethodReference method)
		{
			int sentinel = method.GetSentinel ();

			StringBuilder sb = new StringBuilder ();
			sb.Append (method.ReturnType.ReturnType.FullName);
			sb.Append (" ");
			sb.Append (method.DeclaringType.FullName);
			sb.Append ("::");
			sb.Append (method.Name);
			if (method.HasGenericParameters) {
				sb.Append ("<");
				for (int i = 0; i < method.GenericParameters.Count; i++ ) {
					if (i > 0)
						sb.Append (",");
					sb.Append (method.GenericParameters [i].Name);
				}
				sb.Append (">");
			}
			sb.Append ("(");
			if (method.HasParameters) {
				for (int i = 0; i < method.Parameters.Count; i++) {
					if (i > 0)
						sb.Append (",");

					if (i == sentinel)
						sb.Append ("...,");

					sb.Append (method.Parameters [i].ParameterType.FullName);
				}
			}
			sb.Append (")");
			return sb.ToString ();
		}