我正在尝试实现一个模板类,它接受模板ID和包含所需对象的Dictionary。
e.g。
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>
,我必须指定我需要的所有值,我想提供模板引用整个对象,以便我可以更改模板周围更灵活。
有什么想法吗?
答案 0 :(得分:1)
我不知道gameMessage
或StringTemplate
是什么,但是,也许你可以使用generics:
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();
}