我目前正在尝试在业务逻辑中设置一个我需要的字段,在这种情况下是 Lazy。(是的,不是属性,需要设置字段)我得到了 Lazy 无法转换为 Lazy 的错误,如您所见:
'BusinessLogic.Lazy
1[System.Object]' cannot be converted to type 'BusinessLogic.Lazy
1[BusinessLogic.ArtikelBLL]类型的对象
我使用这条线来获取动态存储库。
dynamic repository = Activator.CreateInstance(typeof(GenericRepository<>).MakeGenericType(typeArgs));
然后我尝试设置该字段的值,但它失败了:
fInfo.SetValue(obj, Lazy.From(() => repository.GetDataById(id)));
我尝试了很多不同的方法来解决它。不知何故,我必须投射repository.GetDataById(id)
到它正在寻找的实体,在这种情况下是 ArtikelBLL(我可以通过它pInfo.PropertyType
)。但是这样做(ArtikelBLL)repository.GetDataById(id)
不会保持面向对象。有人可以帮我吗?