private bool TryGetConstructor(TypeReference type, out MethodDefinition constructor, bool returnConstructorIfAbstractType = false) { if (!returnConstructorIfAbstractType) { TypeDefinition td = AnalysisUtils.GetTypeDefinitionFromTypeReference(type, _modules); if (td == null || AnalysisUtils.IsTypeAbstract(td)) { constructor = null; return(false); } } HashSet <MethodDefinition> constructors; if (TryGetConstructors(type, out constructors)) { constructor = ConvertConstructorToGenericInstanceMethod(GetConstructorWithMinimumParameters(constructors), type); return(true); } // we should never be in this situation else { constructor = null; return(false); } }