/// <summary>
 /// Interpret IL instructions to find references to other type members
 /// </summary>
 private void InterpretBody()
 {
     Bodies.ForEach(B =>
     {
         List <Instruction> calls = B.GetCallInstructions();
         calls.ForEach(Ic => DeclaringType.Architecture.BaseTypes.ForEach(t =>
         {
             List <MemberInfo> refMembers = t.GetMyMembers().FindAll(m => Ic.Operand.Contains(m.ArchName()));
             DirectRefMembers.AddRange(refMembers);
         }));
     });
 }
        /// <summary>
        /// Post-initialization Architech Members Referenced
        /// </summary>
        /// <param name="includingSelf"></param>
        /// <returns></returns>
        public ArchList <ArchitectMember> ReferencedMembers(bool includingSelf)
        {
            ArchList <ArchitectMember> alist = new ArchList <ArchitectMember>();

            if (referencedMembers == null)
            {
                DeclaringType.Architecture.Types.ForEach(A =>
                                                         { alist.AddRange(A.Members.FindAll(M => DirectRefMembers.Contains(M.Member))); });
                referencedMembers = alist;
            }
            else
            {
                referencedMembers.ForEach(M => alist.Add(M));
            }

            if (!includingSelf)
            {
                alist.RemoveAll(M => M.DeclaringType == DeclaringType);
            }
            return(alist.Clean());
        }