情景:
目前有兩個實體類:Student,ClassInfo.
public class Student {
public string Name { get; set; }
public string Sex { get; set; }
public string Age { get; set; }
}
public class Classinfo
{
public string Subject { get; set; }
public int Score { get; set; }
}
Student stu = new Student() { Name="張三",Sex="男",Age="18"}; Classinfo cla = new Classinfo() { Subject="語文",Score=89};
希望拼接生成一串動態的字符串(非使用string.Format)。里面的屬性可以增加,刪除,隨意改變順序。如:
--情況1 string msg = "學生:[Student.Name],[Student.Sex],[Student.Age]歲。課程得分:[Classinfo.Subject]:[Classinfo.Score]."; ---處理后結果輸出 學生:張三,男,18歲。課程得分:語文:89. --情況2 string msg = "學生:[Student.Name],[Student.Age]歲。課程得分:[Classinfo.Subject]:[Classinfo.Score]."; ---處理后結果輸出 學生:張三,18歲。課程得分:語文:89. --情況2 string msg = "[Student.Age]歲的[Student.Name]的[Classinfo.Subject]成績:[Classinfo.Score]."; ---處理后結果輸出 18歲的張三的語文成績:89.
處理方法:
Student stu = new Student() { Name="張三",Sex="男",Age="18"}; Classinfo cla = new Classinfo() { Subject="語文",Score=89}; object[] sources = new object[] { stu,cla }; string msg = "學生:[Student.Name],[Student.Sex],[Student.Age]歲。課程得分:[Classinfo.Subject]:[Classinfo.Score]."; foreach (var source in sources) { if (source == null) continue; msg = MessageBodyFactory.GetMessageBody(source, msg); }
//msg中可以隨意修改。。
string msg = "學生:[Student.Name],[Student.Sex]歲。課程得分:[Classinfo.Subject]:[Classinfo.Score].";
string msg = "[Student.Age]歲的[Student.Name]的[Classinfo.Subject]成績:[Classinfo.Score].";
源碼地址:http://files.cnblogs.com/gguozhenqian/ConsoleApplication1.zip
