コード例 #1
0
ファイル: Scope.cs プロジェクト: yonglehou/pickaxe
        public static Scope Push(CodeDomTypeDefinition mainType)
        {
            var scope = new Scope(mainType);

            scope._parent = Current;
            Current       = scope;
            return(scope);
        }
コード例 #2
0
ファイル: Scope.cs プロジェクト: yonglehou/pickaxe
 protected Scope(CodeDomTypeDefinition mainType)
 {
     _scope          = new Dictionary <string, IScopeData>();
     ScopeIdentifier = "Scope_" + Guid.NewGuid().ToString("N");
     if (mainType != null)
     {
         CreateType(mainType);
     }
 }
コード例 #3
0
ファイル: Scope.cs プロジェクト: wattson-coder/pickaxe
        protected Scope(CodeDomTypeDefinition mainType)
        {
            _scope          = new Dictionary <string, IScopeData>();
            ScopeGuid       = Guid.NewGuid().ToString("N");
            ScopeIdentifier = "Scope_" + ScopeGuid;
            if (mainType != null)
            {
                CreateType(mainType);
            }

            JoinMembers = new List <CodeMemberField>();
        }
コード例 #4
0
ファイル: Scope.cs プロジェクト: yonglehou/pickaxe
        private void CreateType(CodeDomTypeDefinition mainType)
        {
            Type = new CodeDomTypeDefinition(ScopeIdentifier);
            Type.Type.TypeAttributes = TypeAttributes.NestedPrivate;

            var classType = new CodeTypeReference(ScopeIdentifier);

            mainType.Type.Members.Add(
                new CodeMemberField(classType, "_" + ScopeIdentifier));

            mainType.Constructor.Statements.Add(new CodeAssignStatement(
                                                    new CodeSnippetExpression("_" + ScopeIdentifier),
                                                    new CodeObjectCreateExpression(classType)));

            mainType.Type.Members.Add(Type.Type);
        }