Cannot convert source type to target type
<p>I've got this subclass implementing my Interface and there are no errors in terms of satisfying the contract.  However when I try to set the current session in the sub class's constructor I get this compile-time error when it tries to compare the variable type with the returned type of GetCurrentSession():</p>

<p><strong>"Cannot convert source type IAPISession to target type FacebookSession"</strong></p>

<p>Ok why?  Facebook is a IAPISession... right???  polymorphism at play is my thinking so it should be happy with this comparison.  Not sure here.</p>

<pre><code>public class FacebookSession : IAPISession
{
    private FacebookSession currentSession;

    private FacebookSession()
    {
        currentSession = GetCurrentSession();
    }

    ...more code

    public IAPISession GetCurrentSession()
    {
        // my logic is here...whatever that may be
    }
     ... more code
 }
</code></pre>

<p><strong>Updated</strong></p>

<p>here's my actual interface:</p>

<pre><code>public interface IAPISession
{
    #region Properties

    int SessionID { get; }

    string UserID { get; }

    bool SessionHasExpired { get; }

    DateTime ExpirationDate { get; }

    void LogOut(); // expires the session &amp; sets SessionHasExpired

    #endregion Properties

    #region Methods

    IAPISession GetCurrentSession();

    #endregion Methods

}
</code></pre>

<p>This interface will be utilized across any API wrapper projects of ours (e.g. FlickrSession, etc.)</p>
