public CodeTypeReference GetCodeTypeReference() { if (BaseClassType == null) { return(new CodeTypeReference(typeof(object))); } if (BaseClassType.IsGenericType) { return(ClassType.GetCodeTypeReference()); } else if (BaseClassType.IsGenericParameter) { if (_type.ConcreteType == null) { MethodClass mc = this.Owner as MethodClass; if (mc != null) { DataTypePointer dp = mc.GetConcreteType(BaseClassType); if (dp != null) { _type.SetConcreteType(dp); } } } if (_type.ConcreteType != null) { return(_type.ConcreteType.GetCodeTypeReference()); } } return(new CodeTypeReference(this.TypeString)); }