情景:

目前有两个实体类: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=""};
Classinfo cla = new Classinfo() { Subject="语文",Score=};

希望拼接生成一串动态的字符串(非使用string.Format)。里面的属性可以增加,删除,随意改变顺序。如:

--情况1
string msg = "学生:[Student.Name],[Student.Sex],[Student.Age]岁。课程得分:[Classinfo.Subject]:[Classinfo.Score].";
---处理后结果输出
学生:张三,男,18岁。课程得分:语文:. --情况2
string msg = "学生:[Student.Name],[Student.Age]岁。课程得分:[Classinfo.Subject]:[Classinfo.Score].";
---处理后结果输出
学生:张三,18岁。课程得分:语文:. --情况2
string msg = "[Student.Age]岁的[Student.Name]的[Classinfo.Subject]成绩:[Classinfo.Score].";
---处理后结果输出
18岁的张三的语文成绩:.

处理方法:

Student stu = new Student() { Name="张三",Sex="男",Age=""};
Classinfo cla = new Classinfo() { Subject="语文",Score=}; 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

C# 根据实体类的属性动态生成字符串的更多相关文章

  1. 解决SpringDataJpa实体类中属性顺序与数据库中生成字段顺序不一致的问题

    一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) jpa: database: MYSQL show-sql: true #Hib ...

  2. java 中利用反射机制获取和设置实体类的属性值

    摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...

  3. 实体类相同属性间赋值与如何判断实体类中是否所有的字段都为null

    1,实体类相同属性间赋值 /// <summary> /// 将实体2的值动态赋值给实体1(名称一样的属性进行赋值) /// </summary> /// <param ...

  4. java反射获取和设置实体类的属性值 递归所有父类

    最近做一个通用数据操作接口,需要动态获取和设置实体类的属性值,为了通用实体做了多重继承,开始网上找到代码都不支持父类操作,只能自己搞一个工具类了,此工具类可以设置和获取所有父类属性,代码贴下面拿走不谢 ...

  5. java中循环遍历实体类的属性和数据类型以及属性值

    package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...

  6. swoft orm中的坑(针对实体类的属性名称和数据库字段不相等)

    最近在用swoft的orm,发现了一些问题: 首先看下实体类的定义 它的属性名称和所映射的数据库字段名不一致,这个就会导致蛋疼的问题,首先,在我们使用orm的时候,应该使用哪个字段? 我直接说结论,在 ...

  7. 【转】java遍历实体类的属性和数据类型以及属性值

    和同学接了个外包的活,由于项目中很多地方要用到poi导出excel,而每次导出都要写很多相同的代码,因为poi的cell.setCellValue();每次设置的都是不同实体bean的属性值,导致代码 ...

  8. java遍历实体类的属性和数据类型以及属性值

    遍历实体类的树形和数据类型一级属性值 /** * 遍历实体类的属性和数据类型以及属性值 * @param model * @throws NoSuchMethodException * @throws ...

  9. java中如何遍历实体类的属性和数据类型以及属性值

      package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...

随机推荐

  1. C/C++快速入门

    sscanf与sprint 均在stdio.h头文件下 sscanf用法 sscanf(str, "%d", &n); // 将str中内容以"%d"的 ...

  2. restful返回 json数据的JavaBean设计01

    public class ResponseEntity implements Serializable { private int errCode; private String message; p ...

  3. Linux实战教学笔记29:MySQL数据库企业级应用实践

    第二十九节 MySQL数据库企业级应用实践 一,概述 1.1 MySQL介绍 MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多.其功能稳定,性能卓越,且 ...

  4. Slim安装以及使用【转】

    最近在用backbone.js 做东西,因为牵扯到REST services 所以需要后台支持,此处选择了php.Slim 是php的一个框架. 貌似国内文章对此的介绍比较少,在安装Slim的过程中出 ...

  5. Gym101128G:Game of Cards

    题意: 有P摞纸牌和一个数字k,每次可以从一摞中拿0-k张牌,拿完再剩下的牌中的第一张数字是几,就必须再拿几张,谁不能拿谁输. emmm感觉好像就是裸的SG游戏啊,数据不大,递推出每一摞牌的SG值,然 ...

  6. Spring @AliasFor

    原文地址:https://blog.csdn.net/wolfcode_cn/article/details/80654730 在Spring的众多注解中,经常会发现很多注解的不同属性起着相同的作用, ...

  7. 关于C++中不同类之间的赋值问题——存疑

    operator=不能重载为全局函数.理由如下 void operator=(int i , A& a) {  a.a = i } ; 那么将会出现 99 = a 这种代码,但是99不是左值, ...

  8. 后台注册js代码的方法

    Page.ClientScript.RegisterClientScriptBlock(JSUtil.CurrentPage.GetType(), Util.NewGuid(), @"< ...

  9. ceph修复osd为down的情况

    尝试一.直接重新激活所有osd 1.查看osd树 root@ceph01:~# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-A ...

  10. 制作alipay-sdk-java包到本地仓库

    项目要用到支付宝的扫码支付,后台使用的maven 问了客服 官方目前没有 maven 的地址只能手动安装到本地了,如果建了maven 服务器也可以上传到服务器上 从支付宝官网上下载sdk 制作本地安装 ...