cannot convert from 'TypeA' to 'TypeB' with generics - C#