【发布时间】:2017-08-31 21:36:04
【问题描述】:
我有以下设置:
public interface IInput
{
}
public class SomeInput : IInput
{
public int Id { get; set; }
public string Requester { get; set; }
}
现在我想编写一个函数,它可以接受任何实现 IInput 并使用反射来给我属性:
public Display(IInput input)
{
foreach (var property in input.GetType().GetProperties())
{
Console.WriteLine($" {property.Name}: {property.GetValue(input)}");
}
}
在哪里
var test = new SomeInput(){Id=1,Requester="test"};
Display(test);
表演
Id: 1
Requester: test
【问题讨论】:
-
好的,你似乎已经给出了你想要的代码......那么问题是什么?
-
他说了什么。但是您只需要对象的 IInput 属性值还是其所有属性的值?
-
等等,这行得通吗?我认为反射只会显示接口的属性(IInput)而不是实现的属性(SomeInput)
-
.GetType()将为您提供传入对象的实际具体类型。 -
@CuriousDeveloper 你已经在你的“节目”部分展示了它的工作原理。
标签: c# reflection interface