最近正在做動態生成程式碼的功能
先前有問過,後來改成CSharpCodeProvider的方式來達成
目前屬性欄位都已成功建立
       //用於構造函數的參數
         CodeParameterDeclarationExpression p = new CodeParameterDeclarationExpression(typeof(DataRow), "row");
       // 建構函數
          CodeConstructor cconstructor = new CodeConstructor();
          cconstructor.Attributes = MemberAttributes.Public;              
          cconstructor.Parameters.Add(p);
          ctype.Members.Add(cconstructor);
這段可以建立一段建構涵式
目前也可以建立,只是我希望裡面能加一些內容
像是
    if (row.Table.Columns.Contains("CID")) CID = row["CID"].ToString();
最後可能就大概是這樣
 public NIS_MCPRRec(DataRow row)
 {
      if (row.Table.Columns.Contains("CID")) CID = row["CID"].ToString();
        ...
        ...
        ...
        ...
 }
想請問我該如何增加呢?
好像很好玩XD,但是我沒做過喔,只是幫你找資料:
https://docs.microsoft.com/zh-tw/dotnet/framework/reflection-and-codedom/how-to-create-a-class-using-codedom
有一些建立statement與expression的範例,先大致上搞清楚怎麼寫出程式碼的。
然後看一下reference:
https://docs.microsoft.com/zh-tw/previous-versions/dotnet/netframework-4.0/f1dfsbhc(v=vs.100)
看看有哪些statement跟expression等可以用來建立程式碼的。
我是參考這個網站
https://lawrencetech.blogspot.com/2011/06/blog-post_7.html
這個可能比官網還好用XD
目前我是已經建立出來了
也有稍微做調整,就只剩下在涵式裡加其他內容