public virtual TypeData GetTypeData(Type type)
{
if (type == null)
return null;
TypeData typeData = (TypeData) typeDataTable[type];
if (typeData == null) {
if (type is TypeBuilder) {
typeData = new UserDefinedTypeData(this,
(TypeBuilder) type);
}
else {
if (TypeData.IsGenericTypeInstance(type)) {
typeData = new GenericInstanceTypeData(this, type);
}
else {
typeData = new PredefinedTypeData(this, type);
}
}
typeDataTable[type] = typeData;
}
return typeData;
}