本文整理汇总了C#中Mono.Cecil.MethodDefinition.AddGenericParameter方法的典型用法代码示例。如果您正苦于以下问题:C# MethodDefinition.AddGenericParameter方法的具体用法?C# MethodDefinition.AddGenericParameter怎么用?C# MethodDefinition.AddGenericParameter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mono.Cecil.MethodDefinition
的用法示例。
在下文中一共展示了MethodDefinition.AddGenericParameter方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MatchGenericArguments
/// <summary>
/// Matches the generic parameters of <paramref name="newMethod">a target method</paramref>
/// </summary>
/// <param name="newMethod">The generic method that contains the generic type arguments.</param>
/// <param name="typeArguments">The array of <see cref="Type"/> objects that describe the generic parameters for the current method.</param>
private static void MatchGenericArguments(MethodDefinition newMethod, ICollection<Type> typeArguments)
{
foreach (Type argument in typeArguments)
{
newMethod.AddGenericParameter(argument);
}
}
示例2: DefineMethod
/// <summary>
/// Adds a new method to the <paramref name="typeDef">target type</paramref>.
/// </summary>
/// <param name="typeDef">The type that will hold the newly-created method.</param>
/// <param name="attributes">The <see cref="MethodAttributes"/> parameter that describes the characteristics of the method.</param>
/// <param name="methodName">The name to be given to the new method.</param>
/// <param name="returnType">The method return type.</param>
/// <param name="parameterTypes">The list of argument types that will be used to define the method signature.</param>
/// <param name="genericParameterTypes">The list of generic argument types that will be used to define the method signature.</param>
/// <returns>A <see cref="MethodDefinition"/> instance that represents the newly-created method.</returns>
public static MethodDefinition DefineMethod(this TypeDefinition typeDef, string methodName,
MethodAttributes attributes, Type returnType, Type[] parameterTypes, Type[] genericParameterTypes)
{
var method = new MethodDefinition(methodName, attributes, null);
typeDef.Methods.Add(method);
//Match the generic parameter types
foreach (var genericParameterType in genericParameterTypes)
{
method.AddGenericParameter(genericParameterType);
}
// Match the parameter types
method.AddParameters(parameterTypes);
// Match the return type
method.SetReturnType(returnType);
return method;
}
示例3: DefineMethod
/// <summary>
/// Adds a new method to the <paramref name="typeDef">target type</paramref>.
/// </summary>
/// <param name="typeDef">The type that will hold the newly-created method.</param>
/// <param name="attributes">The <see cref="Mono.Cecil.MethodAttributes"/> parameter that describes the characteristics of the method.</param>
/// <param name="methodName">The name to be given to the new method.</param>
/// <param name="returnType">The method return type.</param>
/// <param name="parameterTypes">The list of argument types that will be used to define the method signature.</param>
/// <param name="genericParameterTypes">The list of generic argument types that will be used to define the method signature.</param>
/// <returns>A <see cref="MethodDefinition"/> instance that represents the newly-created method.</returns>
public static MethodDefinition DefineMethod(this TypeDefinition typeDef, string methodName,
Mono.Cecil.MethodAttributes attributes, System.Type returnType, System.Type[] parameterTypes, System.Type[] genericParameterTypes)
{
var method = new MethodDefinition(methodName, attributes, typeDef.Module.Import(typeof(object)));
typeDef.Methods.Add(method);
//Match the generic parameter types
foreach (var genericParameterType in genericParameterTypes)
{
method.AddGenericParameter(genericParameterType);
}
// Match the parameter types
method.AddParameters(parameterTypes);
// Match the return type
method.SetReturnType(returnType);
return method;
}