我有一种方法可以基于反射返回任何类型的默认值,如下所示
private object getDefault(Type type)
{
object defaultValue = null;
//I have some specific logics here
defaultValue = getCustomDefaultValues(type);
//Value types
if(defaultValue == Type.Missing && type.IsValueType)
{
defaultValue= Activator.CreateInstance(type);
}
//All other types including Ref.
return defaultValue == Type.Missing ? "null" : defaultValue;
}
现在我从经典反射转向 Mono Cecil。所以“类型”将变成“类型定义”。问题是Activator.CreateInstance(type); 不适用于 TypeDefinition。那么还有其他方法可以找到任何类型的默认值吗?或任何现有的简单方法来获取塞西尔类型的默认值?