如何获取具有泛型typeof的字段的值

时间:2016-05-25 10:16:51

标签: c# generics typeof setvalue getvalue

鉴于我有一个参数TEntity,它将是一个类,我如何获得其中一个字段的值。

public class ProductStrategy<TContract> : IContractCreatorStrategy<TContract>
{
    public IContract<TContract> CreateContract<TEntity>(TEntity dbEntity)
    {
        var productEntity = Convert.ChangeType(dbEntity, typeof(TEntity));

        var contractType = typeof (TContract);
        var entityType = dbEntity.GetType();

        var contract = Activator.CreateInstance(contractType);

        var contractFields = contractType.GetProperties().ToList();
        var entityFields = entityType.GetProperties().ToList();

        foreach (var contractField in contractFields)
        {
            foreach (var entityField in entityFields)
            {
                if (entityField.Name.Contains(contractField.Name))
                {

//get the value of the entityfield and set the contract field value to the it.
                }
            }

        }

        return new ProductContract<TContract>();
        return productContract;
    }
}

1 个答案:

答案 0 :(得分:0)

var fieldValue = entityField.GetValue(dbEntity, null);
contractField.SetValue(contract, fieldValue);