在这里,我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"
我怎么只能Shared.Model.Dto.EntityDto
从上面得到?
有没有可用的方法或财产?
尝试Type.FullName
获得所需的东西-https: //docs.microsoft.com/de-de/dotnet/api/system.type.fullname?view=netframework - 4.7.2
因此,就您而言-
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;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句