C# 如何使用GetType获取类的类型
这里我使用C# 如何使用GetType获取类的类型,c#,reflection,C#,Reflection,这里我使用GetType()获取eventData的类型,如下所示 public EventDescriptor(Guid id, IEvent eventData) { AggregateId = id; EventData = eventData; EventType = eventData.GetType().AssemblyQualifiedName; } 返回: "EventType": "Shared.Events.EntityCreatedEvent`1
GetType()
获取eventData
的类型,如下所示
public EventDescriptor(Guid id, IEvent eventData)
{
AggregateId = id;
EventData = eventData;
EventType = eventData.GetType().AssemblyQualifiedName;
}
返回:
"EventType":
"Shared.Events.EntityCreatedEvent`1[[Shared.Model.Dto.EntityDto, Shared,
Version=1.0.6928.25697, Culture=neutral, PublicKeyToken=null]], Shared,
Version=1.0.6928.25697, Culture=neutral, PublicKeyToken=null"
如何从上面只获取共享的.Model.Dto.EntityDto
是否有可用的方法或属性 尝试键入.FullName以获取所需内容- 所以在你的情况下——
public EventDescriptor(Guid id, IEvent eventData)
{
AggregateId = id;
EventData = eventData;
EventType = eventData.GetType().FullName;
}
如果要提取IEvent实例的泛型参数的类型,可以执行以下操作-
public EventDescriptor(Guid id, IEvent eventData)
{
AggregateId = id;
EventData = eventData;
if (!eventData.GetType().IsGenericType)
{
EventType = eventData.GetType().FullName;
}
else
{
// notice - this assumes we can take the FIRST generic argument, we don't check for others here
EventType = eventData.GetType().GetGenericArguments().First().FullName;
}
}
我应该如何更改上述内容?已编辑-查看