本文介绍了分隔符替换方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个方法,以取代与预期目标使用分隔符(HTML邮件,日志,数据库)。分隔符是不变的,所以我希望能够引用识别的名称映射到字符串值的对象(分号=,htmlLineBreak =< BR />等)。有没有更好的办法来做到这一点比这下面?

 公共静态类工具
{
    公共字符串ReplaceDelimiter(字符串内容
                     ,分隔符currentDelimiter,分隔符outputDelimiter)
    {
        返回content.Replace(currentDelimiter.ToString()
                              ,outputDelimiter.ToString());
    }
}公共类分隔符
{
    公共常量字符串,逗号,;
    公共常量字符串分号=;
    公共常量字符串冒号=;
    公共常量字符串断行=\\ r \\ n;
    公共常量字符串htmlLineBreak =< BR />中;
}

编辑以下意见:的结果
一个用例是,当我想记录一个错误到不同的目标,并在邮件发送相同的内容(格式不同)。该日志可能会去一个数据库列(要与分号分隔符键/值)或日志文件(希望分隔符是换行符)。电子邮件是HTML所以希望分隔符以&lt更换; BR />。

下面将从具有几个参数,包括实际的异常一个测井方法的摘录:

 的StringBuilder delimitedMessage =新的StringBuilder();delimitedMessage.Append(日期=+ DateTime.Now.ToShortDateString()+;);
delimitedMessage.Append(时间=+ DateTime.Now.ToLongTimeString()+;);
delimitedMessage.Append(源=+ objException.Source.ToString()修剪()+;);
delimitedMessage.Append(方法=+ objException.TargetSite.Name.ToString()+);
delimitedMessage.Append(做错事的方法=+方法名+;);
delimitedMessage.Append(计算机=+ System.Environment.MachineName.ToString()+;);
delimitedMessage.Append(日志消息=+ +的LogMessage;);
delimitedMessage.Append(异常错误=+ objException.Message.ToString()修剪()+;);
delimitedMessage.Append(严重性=+ severity.ToString()+;);
delimitedMessage.Append(堆栈跟踪=+ objException.StackTrace.ToString()修剪()+;);contentToLog = delimitedMessage.ToString();WriteToDb(contentToLog);
WriteToLog(Utilities.ReplaceDelimiter(contentToLog,Delimiter.semicolon,Delimiter.lineBreak));
SendEmail(Utilities.ReplaceDelimiter(contentToLog,Delimiter.semicolon,Delimiter.htmlLineBreak));


解决方案

  • code

     公共类分隔符{
        公共静态只读分隔符
            HtmlLineBreak =新的分隔符{
                VALUE =< BR />中
            },
            断行=新的分隔符{
                VALUE =\\ r \\ n
            },
            分号=新的分隔符{
                值=;
            },
            科隆=新的分隔符{
                值=:
            },
            逗号=新的分隔符{
                值=,
            };    公共重写字符串的ToString(){
            返回值;
        }    公共字符串值{
            得到;
            组;
        }
    }


  • 测试

      VAR T = Utilities.ReplaceDelimiter(123 \\ r \\ n,Delimiter.LineBreak,Delimiter.HtmlLineBreak);
    Debug.Print({0},T);


  • 输出

这篇关于分隔符替换方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 01:35
查看更多