是否可以在C#中的泛型类中获取派生类属性?

时间:2019-09-06 09:51:59

标签: c# .net class generics inheritance

我有一个通用类和基类为[Event]的接口。有许多从该基类[Event]派生的类。我可以在通用类方法中获取基类[Event]的属性。但是,我无法获取派生类属性。在所有派生类中,很少有相同的属性,我想在我的通用类方法中访问这些属性。

有没有办法做到这一点。

谢谢

public class Online<T> : IOnline<T> where T : Event

{

    public T message { get; set; }
    public void Process(IDomainContainer container, T message)
    {
      var Eventproperty= message.Eventproperty; // no error
       var derivedclassproperty= message.derivedclassproperty; //compile time error
    }

}

1 个答案:

答案 0 :(得分:0)

声明一个从Event派生的基类EventBase,添加派生类的通用属性,然后将Online更改为使用EventBase代替Event。