【发布时间】:2012-02-06 20:39:13
【问题描述】:
我有一个相当多地基于自定义类的应用程序,并且在尝试根据给定替换令牌的类型进行自定义替换时遇到了困难。
我想要做的(看下面的代码)给定一个特定的字符串,循环遍历 _tokens 对象。对于找到的每个令牌,确定 TokenReplacement 中提供的对象类型,并将其替换为 User 对象提供的同一对象的值。
对此的任何帮助或其他方法将不胜感激。
编辑:忘了说这会给我一个堆栈溢出错误。
private BasicUser BU = new BasicUser();
private readonly List<Token> _tokens = new List<Token>
{
new Token
{
TokenName = "Lan ID",
TokenIdentifier = "<!--LANID-->",
TokenReplacement = this.BU.LanID
},
new Token
{
TokenName = "First Name",
TokenIdentifier = "<!--FirstName-->",
TokenReplacement = new BasicUser().FirstName
},
new Token
{
TokenName = "Last Name",
TokenIdentifier = "<!--LastName-->",
TokenReplacement = new BasicUser().LastName
}
};
public string ReplaceTokens(string Input, string LanID)
{
string OutputString = "";
BasicUser User = GetParticipantInformation(Input);
foreach (var token in _tokens)
{
token.TokenReplacement.GetType();
OutputString = OutputString.Replace(token.TokenName, "Token replacement");
}
return OutputString;
}
【问题讨论】:
-
你知道溢出的是什么吗?我没有看到任何递归调用或任何其他暗示堆栈溢出的内容。
-
您似乎遗漏了一些重要的内容。
token.TokenReplacement.GetType()行没有意义。OutputString将永远为空... -
如果可能的话,您应该提供一个小的工作示例。
-
我错过了什么吗?这如何涉及反射?
标签: c# reflection token replace