我有一個基於自定義類的應用程序,而且在試圖根據給定替換標記的類型進行自定義替換時遇到了問題。使用反射的代幣替換
我想要做的事(看下面的代碼)給出了一個特定的字符串,循環通過_tokens對象。對於找到的每個令牌,標識令牌替換中提供的對象的類型,並用用戶對象提供的相同對象的值替換它。
對此的任何幫助或其他方法將不勝感激。
編輯:忘了提及,這給了我一個堆棧溢出錯誤。
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;
}
你知道什麼是溢出?我沒有看到任何遞歸調用或任何會暗示棧溢出的東西。 – deepee1 2012-02-06 20:46:40
看起來你已經省略了一些重要的東西。 'token.TokenReplacement.GetType()'行沒有意義。 'OutputString'將始終爲空...... – 2012-02-06 20:47:58
如果可能的話,您應該提供一個很小的_working_問題示例。 – 2012-02-06 20:48:22