C# - 获取泛型参数,使用反射修改属性,并返回泛型参数
我试图接受一个泛型参数,通过反射操作它的属性,然后返回具有修改后的属性的泛型类型。
public IEnumerable<T> GenerateTest()
{
var type = typeof(T);
foreach (var field in type.GetProperties())
{
// Modify / Set properties on variable type
}
// How do I return object T with the parameters that I modified in the iteration above?
}
I'm trying to take in a generic argument, manipulate the properties of it via Reflection, and then return the generic type with the modified properties.
public IEnumerable<T> GenerateTest()
{
var type = typeof(T);
foreach (var field in type.GetProperties())
{
// Modify / Set properties on variable type
}
// How do I return object T with the parameters that I modified in the iteration above?
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了能够创建一个新的
T
对象,您需要将new()
约束添加到类型参数:然后您可以创建一个新的
T
code> 对象并设置其属性:因为您的方法返回一个
IEnumerable
,所以您不能直接返回T
对象,而是需要包装在一个集合中:To be able to create a new
T
object, you need to add thenew()
constraint to the type parameter:Then you can create a new
T
object and set its properties:Because your method returns an
IEnumerable<T>
, you can't return yourT
object directly but need to wrap in a collection: