Why does the following produce a compiler error:
public interface OwnSession : ISession { }
[...]
OwnSession s = SessionFactory.OpenSession(); // compiler error (in german unfortunately)
[...]
“SessionFactory” returns a “ISession” on “OpenSession()” (NHibernate)
I’m going to guess because OwnSession could be a much larger/different interface than ISession?
Imagine if OwnSession inherited from ISession but also added another method signature.. then the ISession returned by the SessionFactory.OpenSession method would mot match the contract defined by OwnSession (or it could, but not necessarily, depending on the actual concrete type returned… the compiler doesn’t know that)