最近正在做動態生成程式碼的功能
先前有問過,後來改成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
目前我是已經建立出來了
也有稍微做調整,就只剩下在涵式裡加其他內容