예제 #1
0
		private void CreateDBAdapterFieldAndProperty (CodeTypeDeclaration t, DbDataAdapter adapter)
		{
			CodeExpression expr;
			CodeStatement setStmt;
			CodeStatement stmt;
			CodeMemberField f = new CodeMemberField ();
			f.Name = "_adapter";
			f.Type = TypeRef (adapter.GetType ());
			t.Members.Add (f);
			
			CodeMemberProperty p = new CodeMemberProperty ();
			p.Name = "Adapter";
			p.Attributes = MemberAttributes.Private;
			p.Type = f.Type;
			p.HasSet = false;

			expr = FieldRef ("_adapter");
			setStmt = Eval (MethodInvoke ("InitAdapter"));
			stmt = new CodeConditionStatement (Equals (expr, Const (null)),
			                                   new CodeStatement [] {setStmt},
			                                   new CodeStatement [] {});
			p.GetStatements.Add (stmt);
			p.GetStatements.Add (Return (expr));
			t.Members.Add (p);
		}