我想将一个对象复制到同一个接口的模拟中。目标是,做到动态。但似乎没有办法将动态委托转换为函数。
public static T GetCopiedMock<T>(T toCopy, T mockObject) where T : class
{
IEnumerable<PropertyInfo> properties = GetPropertyInfos(toCopy, typeof(T));
foreach (var property in properties)
{
var parameter = Expression.Parameter(typeof(T));
var result = Expression.Property(parameter, property);
var lamda = Expression.Lambda(result, parameter);
var compilat = lamda.Compile();
var funcType = typeof(Func<,>).MakeGenericType(typeof(T), property.PropertyType);
//Here is my problem
mockObject.Expect(new Func<T, property.PropertyType>(compilat));
}
return mockObject;
}
我知道它不可能直接,因为propertytype是在运行时但是有任何解决方法吗?
顺便说一句,这是我的第一篇文章。所以,如果你看到一些我必须做得更好的事情,请告诉我!