[ Pobierz całość w formacie PDF ]
.Metoda AbortInstance() anuluje wszystkiezmiany wprowadzone w pami ci trwa ej w czasie danego wywo ania, przywracaj c stan sprzedtego wywo ania.W a ciwo InstanceId przypomina wspomnian wcze niej w a ciwo ContextManager.InstanceId.Us ugi trwa e 219Poleć ksi kKup ksi kDostawcy trwa o ciAtrybut DurableService instruuje rodowisko WCF, kiedy serializowa i deserializowa daninstancj us ugi, ale w aden sposób nie wskazuje miejsca tej serializacji i deserializacji (niezawiera adnych informacji na temat pami ci stanów).rodowisko WCF stosuje wzorzec pro-jektowy mostu (ang.bridge) w postaci modelu dostawcy dzi ki temu programista mo e prze-kazywa informacje o pami ci stanów niezale nie od wspomnianego atrybutu.Oznacza to, eatrybut DurableService jest oddzielony od pami ci stanów, dzi ki czemu istnieje mo liwo sto-sowania mechanizmu automatycznego zachowania trwa ego w przypadku pami ci zapewnia-j cych zgodno z tym mechanizmem.Je li us ug skonfigurowano z atrybutem DurableService, nale y jeszcze skonfigurowa hostaz odpowiedni fabryk dostawców trwa o ci.Klasa tej fabryki dziedziczy po klasie abstrakcyj-nej PersistenceProviderFactory i tworzy podklas klasy abstrakcyjnej PersistenceProvider:public abstract class PersistenceProviderFactory : CommunicationObject{protected PersistenceProviderFactory();public abstract PersistenceProvider CreateProvider(Guid id);}public abstract class PersistenceProvider : CommunicationObject{protected PersistenceProvider(Guid id);public Guid Id{get;}public abstract object Create(object instance,TimeSpan timeout);public abstract void Delete(object instance,TimeSpan timeout);public abstract object Load(TimeSpan timeout);public abstract object Update(object instance,TimeSpan timeout);// Pozosta e sk adowe&}Najbardziej popularnym sposobem wskazywania fabryki dostawców trwa o ci jest umieszcza-nie odpowiednich zapisów w formie zachowania us ugi w pliku konfiguracyjnym hosta i odwo-ywanie si do tego zachowania w definicji us ugi:Po skonfigurowaniu hosta z uwzgl dnieniem fabryki dostawców trwa o ci rodowisko u ywaklasy PersistenceProvider dla ka dego wywo ania do serializacji i deserializacji instancji.Gdybynie okre lono adnej fabryki dostawców trwa o ci, rodowisko WCF przerwa oby tworzeniehosta us ugi.220 Rozdzia 4.Zarz dzanie instancjamiPoleć ksi kKup ksi kNiestandardowi dostawcy trwa o ciDobr ilustracj sposobu pisania prostego, niestandardowego dostawcy trwa o ci jest moja klasaFilePersistenceProviderFactory, której definicja jest nast puj ca:public class FilePersistenceProviderFactory : PersistenceProviderFactory{public FilePersistenceProviderFactory();public FilePersistenceProviderFactory(string fileName);public FilePersistenceProviderFactory(NameValueCollection parameters);}public class FilePersistenceProvider : PersistenceProvider{public FilePersistenceProvider(Guid id,string fileName);}Klasa FilePersistenceProvider jest opakowaniem mojej klasy FileInstanceStore.Konstruk-tor klasy FilePersistenceProviderFactory wymaga wskazania nazwy odpowiedniego pliku.Je lina wej ciu konstruktora nie zostanie przekazana adna nazwa, klasa FilePersistenceProviderFactory u yje domy lnego pliku Instances.bin.Warunkiem stosowania fabryki niestandardowych dostawców trwa o ci w pliku konfigura-cyjnym jest zdefiniowanie konstruktora, który otrzyma na wej ciu kolekcj typu NameValueCollection (reprezentuj c parametry).Parametry w tej kolekcji maj posta zwyk ych parkluczy i warto ci a cuchowych wskazanych w sekcji zachowania fabryki dostawców w plikukonfiguracyjnym.W tej roli mo na stosowa niemal dowolne klucze i warto ci.Poni szy przy-k ad pokazuje, jak mo na w ten sposób okre li nazw pliku:Konstruktor mo e teraz u y kolekcji parameters do uzyskania dost pu do tych parametrów:string fileName = parameters["fileName"];Dostawca trwa o ci na bazie systemu SQL Serverrodowisko WCF jest dostarczane wraz z dostawc trwa o ci, który zapisuje stan instancjiw dedykowanej tabeli bazy danych systemu SQL Server.Po przeprowadzeniu instalacji z usta-wieniami domy lnymi odpowiednie skrypty instalacyjne tej bazy danych mo na znale w kata-logu C:\Windows\Microsoft.NET\Framework\v4.30316\SQL\EN
[ Pobierz całość w formacie PDF ]