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

我不知道是什么gameMessageStringTemplate但是,也许您可​​以使用泛型

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 回答