2

XML ファイルから読み取ったデータからオブジェクトを作成するアプリケーションを作成しようとしています。

リフレクションを使用して、必要なオブジェクトを作成し、プリミティブ型や ENUM 型などのプロパティを割り当てることができました。

プロパティが、変更するプロパティ名と設定する値を持つディクショナリ エントリであるプリミティブ型の場合

 type.GetProperty((string)property.Key).SetValue(control, Convert.ChangeType((string)property.Value, propertyType, null), null);

および ENUM 型の場合

object desiredPropertyValue = Enum.Parse(propertyType, (string)property.Value);
                    propertyInfo.SetValue(control, desiredPropertyValue, null);

私が抱えている問題は、Fontweight、fontfamily、Margin などの他のタイプのプロパティを設定する方法が見つからないように見えることです。これらはタイプ構造であると思います。

4

1 に答える 1

1

関連する型コンバーターを使用して、オブジェクトを文字列に変換したり、文字列から変換したりできます。たとえば、FontWeight の場合、次のようにFontWeightConverterを使用できます。

object value = new FontWeightConverter().ConvertFromString((string)property.Value)

同様に、ConvertToString を使用して文字列に変換し、辞書に保存できます。

于 2011-05-20T16:27:12.903 に答える