public LoadedAssembly(Assembly library, AssemblyLoader assemblyLoader)
 {
     _library        = library;
     _assemblyLoader = assemblyLoader;
 }
        public AssemblyDocumenter(string library, string xmldoc)
        {
            using (var reader = new StreamReader(xmldoc))
            {
                _xmlDoc = XDocument.Load(reader);
            }

            var dir = Path.GetDirectoryName(library);

            var loader = new AssemblyLoader(dir);

            _library = loader.Load(Path.GetFileName(library));

            // add to dictinary

            _typesDict = new TypesDictionary();


            // Пока топорное заполнение...
            var globalContexts = _library.GetMarkedTypes(ScriptMemberType.GlobalContext);

            foreach (var globalContext in globalContexts)
            {
                var attrib = _library.GetMarkup(globalContext, ScriptMemberType.GlobalContext);

                if (attrib == null)
                {
                    continue;
                }

                TypeInfo curTypeInfo = new TypeInfo();
                curTypeInfo.fullName  = globalContext.FullName;
                curTypeInfo.ShortName = globalContext.Name;
                if (attrib.ConstructorArguments.Count > 0)
                {
                    curTypeInfo.nameEng = (string)attrib.ConstructorArguments[1].Value;
                    curTypeInfo.nameRus = (string)attrib.ConstructorArguments[0].Value;
                }
                _typesDict.add(curTypeInfo);
            }

            var contextTypes = _library.GetMarkedTypes(ScriptMemberType.Class);

            foreach (var classType in contextTypes)
            {
                var attrib = _library.GetMarkup(classType, ScriptMemberType.Class);

                if (attrib == null)
                {
                    continue;
                }

                TypeInfo curTypeInfo = new TypeInfo();
                curTypeInfo.fullName  = classType.FullName;
                curTypeInfo.ShortName = classType.Name;
                if (attrib.ConstructorArguments.Count > 0)
                {
                    curTypeInfo.nameEng = (string)attrib.ConstructorArguments[1].Value;
                    curTypeInfo.nameRus = (string)attrib.ConstructorArguments[0].Value;
                }
                _typesDict.add(curTypeInfo);
            }

            _typesDict.save();
        }