プロパティに値を代入し、C#CodeDOMを使ってコード文を生成するメソッドがあります。C#でオブジェクトを構築する方法 - CodeDOM
private static CodeAssignStatement setProp(string propName, object propValue, Type propType, Type objType)
{
CodeAssignStatement declareVariableName = null;
if (propType.IsPrimitive)
{
declareVariableName = new CodeAssignStatement(
new CodePropertyReferenceExpression(new CodeVariableReferenceExpression("testObj"), propName), new CodePrimitiveExpression(propValue)
);
}
else
{
declareVariableName = new CodeAssignStatement(
new CodePropertyReferenceExpression(new CodeVariableReferenceExpression("testObj"), propName),
new CodeVariableReferenceExpression("\"" + propValue?.ToString() + "\"")
);
}
return declareVariableName;
}
プリミティブ値については、ステートメントを正しく生成しています。しかしながら、安静のために、例えば。 DateTimeそれはtestObj.PurchasedOn = "17-09-2016 18:50:00";
のようなステートメントを生成します。ターゲットデータ型 "解析"メソッドを使用する1つの方法。ただし、他のデータ型では使用できない場合があります。どのようにオブジェクトを構築できますか?フレームワークで利用可能なメソッドはありますか?
これは一般的な方法ではないと思います。すべての型を異なる方法で構築することができます(また、それらを構築する公的な方法もないため)。 – svick