#c# #caching #delegates
#c# #кэширование #делегаты
Вопрос:
Я пробую этот код
return GlavCacheManagement.GetCache("cachekey",15, () =>
{
var list=_repo.GetByLang(IsActiveOrAccepted.Active);
return (currentLangId>0 ?
list.Where(x => x.LangId== currentLangId) : list).ToList();
});
Я изменяю свое возвращаемое значение.Вот мой метод класса GlavCacheManagement
public static T GetCache<T>(string key, int h, Func<T> del) where T:class
{
if (FrSettings.Settings.IsGlavCacheActive)
{
return AppServices.Cache.Get<T>(key, DateTime.Now.AddMinutes(h),del);
}
return del.Invoke();
}
Я получаю исключение из-за моего имени делегата.
Полное имя делегата:
Спорт.Доступ к данным.Услуги.UserDestekHedefServices <>c__DisplayClass9_0.b__0()
Имя делегата:
<GetActiveHedefOfUser>b__0
Stacktrace: System.Xml.XmlConvert.VerifyNCName(Имя строки, тип исключения exceptionType)
Исключение: System.Xml.XmlException, Xml_BadStartNameChar 0x3C не может начинаться с символа ‘<‘ для имени метода
Мой язык кода — c #, и я получаю это исключение из пакета Glav.CacheAdapter
Название моего проекта: Спорт.Доступ к данным,
Имя моей папки:Сервисы,
Имя класса:UserDestekHedefServices,
Мое свойство _repo:
private readonly IUserDestekHedefRepository _repo;
Комментарии:
1. С какой стати вы называете что-либо в C # таким образом? Не могли бы вы переименовать его?
2. @Nikolaus Sport. DataAccess — это имя моего проекта, Services — это имя моей папки, UserDestekHedefServices — это имя моего класса.
3. Почему название вашего делегата начинается с <?
4. Да, это проблема, о которой я не знаю, я отлаживаю метод getCache<T> и просматриваю информацию о делегате. Полное имя и фамилия Olaa выглядят следующим образом.
5. Вы могли бы попытаться определить свой делегат и использовать определенный вместо использования анонимной функции. Но я не знаю, вызвана ли ваша проблема в методе класса или снаружи.