私はシンプルなインターフェースを持っています:
public interface IVisitorsLogController
{
List<VisitorsLog> GetVisitorsLog();
int GetUniqueSubscribersCount();
int GetVisitorsCount();
string GetVisitorsSummary();
}
クラス VisitorLogController はこのインターフェースを実装します。
コンソール アプリケーションまたは TestFixture から - 問題ありません - コンソール/テスト フィクスチャは完全にコンパイルされます。
ただし、コード ビハインドにこのコードを含む同じソリューションの Asp.Net Web サイト (アプリケーションではない) から
private IVisitorsLogController ctl;
protected int GetUniqueMembersCount()
{
ctl = new VisitorsLogController();
return ctl.GetUniqueSubscribersCount();
}
コンパイラは次の例外をスローします。
エラー 1 'WebSiteBusinessRules.Interfaces.IVisitorsLogController' には 'GetUniqueSubscribersCount' の定義が含まれておらず、タイプ 'WebSiteBusinessRules.Interfaces.IVisitorsLogController' の最初の引数を受け入れる拡張メソッド 'GetUniqueSubscribersCount' が見つかりませんでした (using ディレクティブまたはアセンブリ参照?)
同じファイル内のこのコードの場合:
protected static int GetVisitorsCount()
{
return VisitorsLogController.Instance.GetVisitorsCount(DateTime.Today);
}
コンパイラは文句を言わずにこれらの行をコンパイルします。実際、インターフェイスに何か新しいものを追加すると、コンパイラは asp.net ページをコンパイルしようとすると文句を言うようになりました。
using ディレクティブまたはアセンブリ参照が欠落している可能性はありません。そうしないと、両方のメソッドが失敗します。
これは私を夢中にさせています!
何か考えはありますか?
ありがとう、
ジェレミー