IDsDocument TryLoadFromDir2(IAssembly asmName, bool checkVersion, bool checkPublicKeyToken, string filename) { if (!File.Exists(filename)) return null; IDsDocument document = null; bool error = true; try { document = documentService.TryCreateDocument(DsDocumentInfo.CreateDocument(filename)); if (document == null) return null; document.IsAutoLoaded = true; var asm = document.AssemblyDef; if (asm == null) return null; var flags = AssemblyNameComparerFlags.All & ~(AssemblyNameComparerFlags.Version | AssemblyNameComparerFlags.PublicKeyToken); if (checkVersion) flags |= AssemblyNameComparerFlags.Version; if (checkPublicKeyToken) flags |= AssemblyNameComparerFlags.PublicKeyToken; bool b = new AssemblyNameComparer(flags).Equals(asmName, asm); if (!b) return null; error = false; return document; } finally { if (error) { if (document is IDisposable) ((IDisposable)document).Dispose(); } } }
IDsDocument TryLoadFromDir2(IAssembly asmName, bool exactCheck, string filename) { if (!File.Exists(filename)) { return(null); } IDsDocument document = null; bool error = true; try { document = documentService.TryCreateDocument(DsDocumentInfo.CreateDocument(filename)); if (document == null) { return(null); } document.IsAutoLoaded = true; var asm = document.AssemblyDef; if (asm == null) { return(null); } bool b = exactCheck ? AssemblyNameComparer.CompareAll.Equals(asmName, asm) : AssemblyNameComparer.NameAndPublicKeyTokenOnly.Equals(asmName, asm); if (!b) { return(null); } error = false; return(document); } finally { if (error) { if (document is IDisposable) { ((IDisposable)document).Dispose(); } } } }