2017-11-07 4 views
0

これは基本インタフェースです:RuntimeBinderException: 'IReadDataService' 'GetBySlug' の定義が含まれていません

public interface IBaseDataService<TPage> : IDisposable where TPage : PageBase 
{ 
    Task<TPage> GetBySlug(string slug, 
     CancellationToken cancellationToken = default(CancellationToken)); 
} 

そして、ここでそれを拡張:

public interface IReadDataService : IBaseDataService<MyPage> 
{ 
} 

これは、インターフェイスの実装です:

public class MyDataService : IMyDataService 
{ 
    private readonly MyDbContext dbcontext; 

    public MyDataService (MyDbContext dbcontext) 
    { 
     this.dbcontext = dbcontext; 
    } 

    public async Task<MyPage> GetBySlug(string slug, 
     CancellationToken cancellationToken = default(CancellationToken)) 
    { 
     .... 
    } 
} 

最後に、実装をDIに追加します。

services.AddScoped<IMyDataService, MyDataService>(); 

コントローラで使用すると、GetBySlugがインターフェイスに見つかります。

+0

例外の例外タイプ、メッセージ、スタックトレース、_all_その内部例外をすべて送信してください。 – Steven

答えて

0

実装を2回追加して正常に動作します。

services.AddScoped<IMyDataService, MyDataService>(); 
services.AddScoped<IBaseDataService<MyPage>, MyDataService>(); 
関連する問題