代わりに XML として保存します
<?xml version="1.0" encoding="UTF-8"?>
<Components>
<Component name="Motor" cost="100" quantity="100" />
<Component name="Shaft" cost="10" quantity="100" />
</Components>
この定義があると仮定すると
public class AssembleComponent
{
public decimal Cost { get; set; }
public int Quantity { get; set; }
}
このようにロードします
var components = new Dictionary<string, AssembleComponent>();
XDocument doc = XDocument.Load(@"C:\Users\Oli\Desktop\components.xml");
foreach (XElement el in doc.Root.Descendants()) {
string name = el.Attribute("name").Value;
decimal cost = Decimal.Parse(el.Attribute("cost").Value);
int quantity = Int32.Parse(el.Attribute("quantity").Value);
components.Add(name, new AssembleComponent{
Cost = cost, Quantity = quantity
});
}
その後、このようにコンポーネントにアクセスできます
AssembleComponent motor = components["Motor"];
AssembleComponent shaft = components["Shaft"];
注: 実行時にコンパイラを呼び出して変数名を動的に作成することは、有用なことを行うためにコンパイル時 (または必要に応じて設計時) にそれらを知る必要があるため、あまり役に立ちません。したがって、コンポーネントを辞書に追加しました。これは、「変数」を動的に作成する良い方法です。