Диск поддержал словарь/кэш для c#

Надеюсь, это поможет вам

 SharedPreferences sharedPrefs = getSharedPreferences("SharedPreferences_Name", Context.MODE_PRIVATE);
    private ImageView bookmark;
    bookmark = (ImageView) findViewById(R.id.imageView_bookmark_readIt);
    private boolean bookmarking = sharedPrefs.getBoolean("bookmarking",true);//To get value that saved in SharedPreferences 
    if(bookmarking){
        bookmark.setImageResource(R.drawable.ic_bookmarked_blue);
    }
    else{
        bookmark.setImageResource(R.drawable.ic_bookmark);
        //Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_LONG).show();
    }
    bookmark.setOnClickListener(new View.OnClickListener(){

       // private boolean bookmarking = true;

        public void onClick(View v){

            if(bookmarking){
                bookmark.setImageResource(R.drawable.ic_bookmarked_blue);
                bookmarking=false;
                SharedPreferences.Editor editor = getSharedPreferences("SharedPreferences_Name", 0).edit();
                editor.putBoolean("bookmarking", bookmarking);
                editor.apply();
            }
            else{
                bookmarking=true;
                bookmark.setImageResource(R.drawable.ic_bookmark);
                //Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_LONG).show();
                SharedPreferences.Editor editor = getSharedPreferences("SharedPreferences_Name", 0).edit();
                editor.putBoolean("bookmarking", bookmarking);
                editor.apply();
            }
        });
11
задан 10 revs, 2 users 75% 23 May 2017 в 11:53
поделиться

10 ответов

То, что Вы действительно хотите, является B-деревом. Это - структура первичных данных, которую использует база данных. Это разработано, чтобы позволить Вам эффективно подкачать части структуры данных к и от диска по мере необходимости.

Я не знаю ни о каких широко используемых, высококачественных автономных реализациях B-дерева для C#.

Однако простой способ добраться нужно было бы использовать базу данных Sql Compact. Компактный механизм Sql будет работать незавершенный, таким образом, Вам не будет нужно отдельное сервисное выполнение. Это даст Вам B-дерево, но без всех головных болей. Можно просто использовать SQL для доступа к данным.

4
ответ дан 3 December 2019 в 10:26
поделиться

Правовая оговорка - я собираюсь указать на Вас на продукт, в который я вовлечен.

Я все еще работаю над стороной веб-сайта вещей, таким образом, нет большого количества информации, но Серийный убийца был бы подходящим вариантом для этого. У меня есть примеры, которые используют сериализацию .NET (может предоставить примеры), таким образом пишущий персистентный кэш карты для .NET, сериализуемые объекты были бы тривиальны.

Достаточно бесстыдный сам продвижение - если заинтересовано, используйте ссылку контакта на веб-сайт.

2
ответ дан 3 December 2019 в 10:26
поделиться

Вот реализация B-дерева для .NET: http://bplusdotnet.sourceforge.net/

1
ответ дан 3 December 2019 в 10:26
поделиться

Это очень похоже на мой вопрос

Поиск простой автономной персистентной реализации словаря в C#

Я не думаю библиотека, которая точно соответствует тому, что Вы хотите, существует, возможно, ее время для нового проекта на GitHub.

2
ответ дан 3 December 2019 в 10:26
поделиться

можно использовать блок приложений MS с находящимся на диске решением для кэша

0
ответ дан 3 December 2019 в 10:26
поделиться

Попытайтесь смотреть на NCache здесь также.

Я не аффилирован с этой компанией. Я только что загрузил и протестировал их бесплатную специальную версию.

0
ответ дан 3 December 2019 в 10:26
поделиться

У меня есть частично JAVA-приложение poprted EhCache к.NET, распределенное кэширование еще не реализовано, но на единственном узле, всей исходной передаче UnitTests. Полный OpenSource:

http://sourceforge.net/projects/thecache/

Я могу создать двоичное отбрасывание, если Вам нужно оно (только исходный код является availble теперь),

0
ответ дан 3 December 2019 в 10:26
поделиться

Я следовал бы встроенным маршрутом DB (SQLite, Firebird), но здесь являюсь некоторыми другими опциями:

0
ответ дан 3 December 2019 в 10:26
поделиться

Я рекомендую блок Программы кэширования в Библиотеке Предприятия от MS. Это рекомендовалось также, но ссылка указывает на статью о части Доступа к данным Библиотеки Предприятия.

Вот ссылка на Блок Программы кэширования:

http://msdn.microsoft.com/en-us/library/cc309502.aspx

И конкретно Вы захотите создать новое запоминающее устройство (если тот, который сохраняется к диску, не будет там):

http://msdn.microsoft.com/en-us/library/cc309121.aspx

0
ответ дан 3 December 2019 в 10:26
поделиться

Учитывая Ваши недавние редактирования к вопросу, я предлагаю, чтобы Вы реализовали решение, отмеченное в Вашем вопросе, поскольку Вы очень вряд ли найдете такое наивное решение обернутым в библиотеке для Вас к повторному использованию.

0
ответ дан 3 December 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: