我有以下类和接口
public interface IFoo {}
public class Foo : IFoo {}
public interface IWrapper<T> where T : IFoo {}
public class Wrapper<Foo> : IWrapper<Foo> {}
我怎样才能Wrapper<Foo>
投到IWrapper<IFoo>
?使用 Cast (InvalidCastException) 时引发异常,因为我在使用 as 时得到 null。
谢谢您的帮助!
更新
这是一个更具体的例子:
public interface IUser {}
public class User : IUser {}
public interface IUserRepository<T> where T : IUser {}
public class UserRepository : IUserRepository<User> {}
现在我需要能够做这样的事情:
UserRepository up = new UserRepository();
IUserRepository<IUser> iup = up as IUserRepository<IUser>;
我正在使用.net 4.5。希望这可以帮助。