0
我需要得到所有GenericParameterAttributes
泛型參數T在MClass思考讓所有GenericParameterAttributes
public class MClass<T>:IEnumerable<T> where T : class,IComparable, new()
{
//some body here
}
所以我嘗試了這種方式:
Assembly asm = Assembly.LoadFrom("M.dll");
Type some_type = asm.GetType("M.MClass`1");
Type[] generic_args = { typeof(MyTestClass) };
if (some_type.IsGenericType)
{
Console.WriteLine("Generic Type: {0}", some_type.ToString());
Console.WriteLine("Where T : {0}", some_type.GetGenericArguments()[0].GenericParameterAttributes);
some_type = some_type.MakeGenericType(generic_args);
}
但在某些原因propherty GenericParameterAttributes顯示是t必須是默認構造函數類,但並不表明T也必須具有IComparable 也是這樣試過的:
這樣的工作,但不要忘記重建變更後的項目)
static void Main()
{
Assembly asm = Assembly.LoadFrom("M.dll");
Type some_type = asm.GetType("M.MClass`1");
if (some_type.IsGenericType)
{
var generic_argument =some_type.GetGenericArguments()[0];
var generic_parameter_constraints =generic_argument.GetGenericParameterConstraints();
Console.WriteLine(generic_parameter_constraints.Length);
Console.ReadLine();
}
}
已嘗試allready ... GetGenericParameterConstraints()返回空數組 – Spam
您稱此方法爲哪個對象? –
與你寫的一樣 some_type.GetGenericArguments()[0] return T – Spam