2015-02-25 2 views
0

Я получаю ошибкуРодовой тип головной боли: Проблема прохождения по типу, когда Родовой тип наследует от нескольких интерфейсов

The type GenericObject<ISomeInterface> must be convertible to <GenericObject<GenericObject<ISomeInterface>> 
in order to use it as parameter <T> in the generic class Wrapper<T> 

Классы в вопросе

public abstract class GenericObject<T> : ReactiveObject where T: class, ISomeInterface 

public class SpecificSubObject: GenericObject<SpecificSubObject>, ISomeInterface {} 

//T = any potential SpecificSubObject 
public class Wrapper<T> : ReactiveObject, ISomeInterface where T : GenericObject<T>, ISomeInterface {} 

//View.xaml.cs 
public partial class View 
{ 
    public Wrapper<GenericObject<ISomeInterface>> SomeWrapper {get;set;} 
} 

Есть ли какой-нибудь способ (без моего View class generic (поскольку частичные классы не могут быть общими)), чтобы заставить это работать?

ответ

0

Вы можете попробовать добавить второй параметр для Wrapper:

public class Wrapper<T,P> : ReactiveObject, ISomeInterface 
     where T : GenericObject<P> 
     where P : class, ISomeInterface 
{...} 

Он должен быть выведен компилятором, так что View останется прежним.

Смежные вопросы