Я пытаюсь создать общий типизированный класс, но столкнулся с проблемой.Вот мое базовое определение класса:
public class QueueObject<T> where T : System.ServiceModel.DomainServices.Client.Entity
{
public string LoadingMessage { get; set; }
public System.ServiceModel.DomainServices.Client.EntityQuery<T> Query { get; set; }
}
Я пытаюсь добавить экземпляры этого класса в очередь
private Queue<QueueObject<Entity>> _queue;
this._queue.Enqueue(new QueueObject<MyEntity> {Query = MyContext.GetMyEntitiesQuery(), LoadingMessage = "Loading some stuff"});
Это не работает.Я получаю сообщение о том, что QueueObject не может быть преобразован в QueueObject.Я не понимаю, потому что MyEntity наследует от Entity.Я делаю что-то не так?
Вот тот же код в VB, если это помогает:
Public Class QueueObject(Of T As System.ServiceModel.DomainServices.Client.Entity)
Public Property LoadingMessage As String
Public Property Query As System.ServiceModel.DomainServices.Client.EntityQuery(Of T)
End Class
Private _queue As Queue(QueueObject(Of Entity))
Me._queue.Enqueue(New QueueObject(Of MyEntity) With {.Query = MyContext.GetMyEntitiesQuery(), .LoadingMessage = "Loading some stuff..."})