11

Piszę klasę ConfigManager, używając przenośnych bibliotek klas. PCL obsługuje klasy StreamReader i StreamWriter, których chcę użyć, ale wersja PCL tych klas nie obsługuje przesyłania ciągu znaków podczas konstrukcji. PCL również nie obsługuje reader.Close() i writer.Close(). Wreszcie nie obsługuje klasy FileStream.StreamReader i przenośna biblioteka klas

Więc szukam odpowiedzi na któregokolwiek z następujących pytań:

  1. Jak mogę uzyskać StreamReader i StreamWriter klas pracujących w PCL?
  2. Jak mogę utworzyć nowy stream przy użyciu PCL?
  3. Jakie inne alternatywy muszę załadować i zapisać pliki w PCL?
+0

nie obsługuje usuwania obiekty strumieniowe? Ponieważ powinno to zamknąć dobrze. –

+2

Zamiast .Close() użyj .Dispose(), no nie ma rozwiązania, , ponieważ nie ma problemu ...dostęp do systemu plików musi zostać wyodrębniony Wystarczy kodować interfejsy. wyboru: [Link] hthttps: //pclstorage.codeplex.com [związek] (https://github.com/slodge/MvvmCross/tree/v3/Plugins/Cirrious/File) – Dan

Odpowiedz

8

Użyj Dispose() zamiast Close() (lub po prostu zapakuj wszystko w instrukcję użycia). Ukryliśmy/usunęliśmy Close() w aplikacjach Windows Store i nowszych PCL, ponieważ robi to samo, a ludzie nie mieliby pojęcia, do kogo zadzwonić.

Należy rozważyć użycie PCL Storage dla dostępu do systemu plików między platformami.

Oto kilka blogach może warto zapoznać się z jak podejść funkcjonalność danej platformy w PCLS:

+0

PCLStorage której asynchroniczne często nie jest wystarczający. Szczególnie smutne jest używanie async PCLStorage na .NET/Xamarin/WP8, gdzie System.IO istnieje na wszystkich platformach. – Grigory

+0

Dla każdego, kto czyta tę odpowiedź, używałby pamięci PCL. PCL Storage nie jest już dłużej utrzymywany, radziłbym nie używać go w aplikacji produkcyjnej. Preferuj wdrażanie własnego rozwiązania pamięci masowej za pomocą wtrysku zależności – Tifa

2

znaleźć odpowiedź tutaj (Rob Caplan): http://social.msdn.microsoft.com/Forums/windowsapps/en-US/386eb3b2-e98e-4bbc-985f-fc143db6ee36/read-local-file-in-portable-library#386eb3b2-e98e-4bbc-985f-fc143db6ee36

dostępu do plików nie można zrobić przenośnie między aplikacjami systemu Windows Store i Windows Phone 8 aplikacji. Będziesz musiał użyć kodu specyficznego dla platformy, aby otworzyć plik i pobrać strumień. Następnie można przekazać strumień do PCL.

Ponieważ obie aplikacje systemu Windows Store i Windows Phone 8 aplikacje użyć zasadniczo te same systemu Windows (Phone) zajęcia Runtime z Windows.Storage otwierać pliki można udostępniać kod (ale nie binarny) poprzez łączenie kodu plik pomiędzy dwoma projektami. Zobacz Udostępnij kod za pomocą opcji Dodaj jako łącze.

Zobacz Maksymalizuj wykorzystanie kodu w systemach Windows Phone 8 i Windows 8, aby uzyskać więcej informacji na temat metod dzielenia kodu przez .

Jeśli ktoś ma rozwiązanie inne niż to, byłbym zainteresowany, aby usłyszeć; również zastanawiasz się nad metodami .Close() w PCL.

Powiązane problemy