一、场景
最近做多语言的转换,例如【考场表】里有地址(Guid)、考场名(Guid),他们关联到了【多语言表】,多语言表目前有中英两种语言,需要写一个通用映射方法根据用户环境返回不同语言。
下文代码删减了部分业务逻辑,做了一个通用方法。
二、通用Map方法
// Map工具类
public class MapUtil
{
public IEnumerable<T> Map<T, TProperty>(IEnumerable<T> sourceList, params Expression<Func<T, TProperty>>[] propertys)
{
foreach (var item in sourceList)
{
foreach (var property in propertys)
{
// 在此处根据item值 赋予新值
var value = "YOUR_VALUE";
MemberExpression memberExpression = property.Body as MemberExpression;
PropertyInfo propertyInfo = memberExpression.Member as PropertyInfo;
object target = item.GetTarget(memberExpression.Expression);
propertyIn