OpenNamespace() public method

public OpenNamespace ( string name ) : void
name string
return void
示例#1
0
        void CreateScopes(MethodBody body, ScopeCollection scopes, SymbolToken localVarToken)
        {
            foreach (Scope s in scopes)
            {
                int startOffset = s.Start.Offset;
                int endOffset   = s.End == body.Instructions.Outside ?
                                  body.Instructions[body.Instructions.Count - 1].Offset + 1 :
                                  s.End.Offset;

                m_writer.OpenScope(startOffset);
                m_writer.UsingNamespace(body.Method.DeclaringType.Namespace);
                m_writer.OpenNamespace(body.Method.DeclaringType.Namespace);

                int start = body.Instructions.IndexOf(s.Start);
                int end   = s.End == body.Instructions.Outside ?
                            body.Instructions.Count - 1 :
                            body.Instructions.IndexOf(s.End);

                ArrayList instructions = CollectSequencePoints(body, start, end);
                DefineSequencePoints(instructions);

                CreateLocalVariable(s, startOffset, endOffset, localVarToken);

                CreateScopes(body, s.Scopes, localVarToken);
                m_writer.CloseNamespace();

                m_writer.CloseScope(endOffset);
            }
        }