0

テンプレート ID と必要なオブジェクトを含むディクショナリを受け取るテンプレート クラスを実装しようとしています。


例えば

public string GenerateMessage(string messageID, Dictionary<string, dynamic> values)
{
    string gameMessage = gameMessages[messageID];

    var template= new StringTemplate(gameMessage);
    foreach (var value in values)
    {
        template.SetAttribute(value.Key, value.Value);
    }
    return template.ToString();

}

使用例

var values = new Dictionary<string, dynamic>();
values.Add("city", london) // instance of City
values.Add("country", uk) // instance of Country
values.Add("user", user) // instance of User
string message = GenerateMessage("ID123", values);

残念ながら、私は Unity を使用していますが、.NET 3.5 のサブセットしかサポートしていません。これには動的は含まれていません!


必要なすべての値を指定しなければならない場所は本当に必要ありません。Dictionary<string, string>オブジェクト全体へのテンプレート参照を提供して、テンプレートをより柔軟に変更できるようにしたいと思います。


何か案は?

4

1 に答える 1

1

私は何であるgameMessageかわかりませんが、ジェネリックStringTemplateを使用できるかもしれません:

public string GenerateMessage<T>(string messageID, Dictionary<string, T> values)
{
    string gameMessage = gameMessages[messageID];

    var template = new StringTemplate(gameMessage);
    foreach (var value in values)
    {
        template.SetAttribute(value.Key, value.Value);
    }
    return template.ToString();
}
于 2013-08-03T22:59:25.507 に答える