我正在替換字符串中的某些代碼。我有一個函數從電子郵件模板表中獲取電子郵件模板,其中的代碼如##NewUserFirstName##
和##password##
位於該表的正文列中。還有另一個表格定義了哪個表格將取代這些代碼的值,因此對於##NewUserFirstName##
我已經定義了UserProfile.FirstName
和##password##
UserProfile.password
在第二個表格中。我已經得到了所有的合併代碼是這樣的:使用數據庫中的值替換字符串中的代碼
using (ICampaignManager campaignManager = new ManagerFactory().GetCampaignManager())
{
using (IUserProfileManager UserProfileManager1 = new ManagerFactory().GetUserProfileManager())
{
using (IAccountManager AccountManager = new ManagerFactory().GetAccountManager())
{
using (ICallTypeManager CallTypeManager = new ManagerFactory().GetCallTypeManager())
{
using (ICallOutcomeManager CallOutComeManager = new ManagerFactory().GetCallOutcomeManager())
{
using (ICallRecordingManager CallRecordingManager = new ManagerFactory().GetCallRecordingManager())
{
UserProfile UserProfile = UserProfileManager1.GetByfkAccountId(Convert.ToInt32(AccountId)).FirstOrDefault();
Account acc = AccountManager.GetById(Convert.ToInt32(AccountId));
UserProfile CurrentLoggedInUser = UserProfileManager1.GetByfkAccountId(Convert.ToInt32(CurrentAccount.Id)).FirstOrDefault();
CallRecording callRecording = CallRecordingManager.GetById(callRecordingId);
if (subject.Contains("##password##") || body.Contains("##password##"))
password = GetPassword(UserProfile.UserAuthentication.EmailAddress);
foreach (MailMergeCode mergeCode in mailMergeCodes)
{
if (body.Contains(mergeCode.MailMerge))
body = Regex.Replace(body, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);
if (subject.Contains(mergeCode.MailMerge) && !subject.Contains("##password##"))
subject = Regex.Replace(subject, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);
}
}
}
}
}
}
}
}
但是下面一行使得##NewUserFirstName##
爲UserProfile.FirstName
using (IMailMergeCodeManager mailMergeCodeManager = new ManagerFactory().GetMailMergeCodeManager())
{
mailMergeCodes = mailMergeCodeManager.GetAll().ToList();
}
現在我使用這些代碼,這樣的替換模板代碼
body = Regex.Replace(body, mergeCode.MailMerge, mergeCode.FieldName, RegexOptions.IgnoreCase);
而不是從UserProfile.FirstName
獲得價值,這是「Joe Smith」
我該如何解決這個問題?
你使用的任何問題,我們與string.replace我知道,如果這能解決你的問題 – skhurams