Я столкнулся с действительно странной ситуацией, если я попытался в VS 2015, он без проблем справляется с базовым символьным методом. Даже VS-код с Omnisharp на Ubuntu 16.04 не имеет проблем для перехода к методу , Но когда я запускаю, он просто бросает какое-то странное исключение. Я% 100 уверен, что метод есть ...dotnet-core не удалось найти базовый метод интерфейса
Вот dotPeek Скриншот для /Yakari.Tests/{outputdir}/Yakari.dll
Вот структура:
public interface ICacheProvider : IDisposable
{
.....
void Set(string key, object value, TimeSpan expiresIn, bool isManagerCall = false);
.....
}
public interface ILocalCacheProvider : ICacheProvider
{
....
}
public abstract class BaseCacheProvider : ICacheProvider
{
.....
public abstract void Set(string key, object value, TimeSpan expiresIn, bool isManagerCall = false);
.....
}
public class LittleThunder : BaseCacheProvider, ILocalCacheProvider
{
.....
public override void Set(string key, object value, TimeSpan expiresIn, bool isManagerCall = false)
{
....
}
.....
}
Когда мы делаем что-то вроде этого:
public class SomeTestClass {
ILocalCacheProvider _localCacheProvider;
public SomeTestClass(ILocalCacheProvider localCacheProvider) {
_localCacheProvider = localCacheProvider;
}
public void SomeTestMethod() {
// Below line throws: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException : 'Yakari.ILocalCacheProvider' does not contain a definition for 'Set'
_localCacheProvider.Set("key", dynamic value, CacheTime.FifteenMinutes);
}
}
Код взят из https://github.com/TitaniumSoft/yakari
Примечание: Вы можете увидеть ту же ошибку во время выполнения в appveyor CI Log
Любые идеи? Спасибо и приветствую ...
Я создал проблему (ошибка): https://github.com/dotnet/coreclr/issues/8126 – efaruk
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что OP не предоставил полную информацию для решения проблемы но OP хочет, чтобы каждый клонировал репозиторий Git, который может быть недоступен в будущем. –
Я отредактировал следующую строку _localCacheProvider.Set («ключ», динамическое значение, CacheTime.FifteenMinutes); } Но если вы еще не счастливы, ни одно тело не останавливает вас. Но я думаю, вы должны быть более скромными;) – efaruk