示例#1
0
        public void LoadDoc(ELanguage language = ELanguage.English)
        {
            string docContent = string.Empty;
            string fileName   = string.Empty;

            try
            {
                fileName   = GetFileName(language);
                docContent = File.Exists(fileName) ? File.ReadAllText(fileName) : string.Empty;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Attempting to load doc for {0}, exception {1}", fileName, ex);
            }
            LoadDoc(docContent, language);
        }
示例#2
0
        public MemDocModel LoadDoc(string memFileContent, ELanguage language = ELanguage.English, bool updateMemberSignaturesAndFlags = true, bool assignDocToMemberItem = true)
        {
            bool translated = language != ELanguage.English;

            // Create new MemDocModel
            MemDocModel memDocModel = new MemDocModel(memFileContent)
            {
                Language = language, AssemblyKind = ItemType
            };

            InitializeDocSignaturesIfNone(memDocModel);

            if (assignDocToMemberItem)
            {
                if (translated)
                {
                    DocModelTranslated = memDocModel;
                }
                else
                {
                    DocModel = memDocModel;
                }
            }

            if (updateMemberSignaturesAndFlags)
            {
                // Remove old (possibly outdated) doc info from member signature list
                for (int i = m_SignatureList.Count - 1; i >= 0; i--)
                {
                    if (translated)
                    {
                        m_SignatureList[i].InDocTranslated = false;
                    }
                    else
                    {
                        m_SignatureList[i].InDoc = false;
                    }

                    if (!m_SignatureList[i].InAsm && !m_SignatureList[i].InDoc && !m_SignatureList[i].InDocTranslated)
                    {
                        m_SignatureList.RemoveAt(i);
                    }
                }


                // Populate member signature list with signatures from (updated) doc
                foreach (string signature in memDocModel.SignatureListFromAllBlocks)
                {
                    if (!m_SignatureList.Any(e => (e.Name == signature)))
                    {
                        m_SignatureList.Add(new SignatureEntry(signature));
                    }
                    SignatureEntry signatureEntry = m_SignatureList.First(e => e.Name == signature);
                    var            subSection     = memDocModel.SubSectionOfSignature(signature);
                    if (subSection != null)
                    {
                        subSection.SignatureEntryList.Add(signatureEntry);
                    }
                    if (translated)
                    {
                        signatureEntry.InDocTranslated = true;
                    }
                    else
                    {
                        signatureEntry.InDoc = true;
                    }
                    //if (signatureEntry.InAsm && signatureEntry.Asm.Private)
                    //	System.Console.WriteLine ("Private documented signature "+signature+" in member "+ItemName);
                }

                UpdateFlags();
            }

            // Add assembly information to MemberDocModel
            memDocModel.ProcessAsm(this);

            return(memDocModel);
        }
示例#3
0
 public string GetFileName(ELanguage language = ELanguage.English)
 {
     return(DirectoryWithLangUtil.GetPathFromMemberNameAndDir(ItemName, DirectoryUtil.MemberDocsDirFullPath, language));
 }