public NativeRuntime.IFabricStatefulServiceReplica CreateReplica( IntPtr nativeServiceType, IntPtr nativeServiceName, uint initializationDataLength, IntPtr nativeInitializationData, FABRIC_PARTITION_ID partitionId, FABRIC_REPLICA_ID replicaId) { Func <IStatefulServiceFactory, ServiceInitializationParameters, IStatefulServiceReplica> creationFunc = (factory, initParams) => { return(factory.CreateReplica(initParams.ServiceTypeName, initParams.ServiceName, initParams.InitializationData, partitionId, replicaId)); }; ServiceInitializationParameters initializationParameters = new StatefulServiceInitializationParameters(this.codePackageActivationContext) { ReplicaId = replicaId }; IStatefulServiceReplica statefulService = this.CreateHelper <IStatefulServiceFactory, IStatefulServiceReplica>( nativeServiceType, nativeServiceName, initializationDataLength, nativeInitializationData, partitionId, creationFunc, (inst, initParams) => inst.Initialize(initParams as StatefulServiceInitializationParameters), initializationParameters); return(new StatefulServiceReplicaBroker(statefulService, initializationParameters, replicaId)); }
public void Initialize_OverrideNativeKeyValueStore(StatefulServiceInitializationParameters initParams) { using (var pin = new PinCollection()) { var kvsSettings = this.KeyValueStoreReplicaSettings_V2; var nativeKvsSettings = kvsSettings.ToNative(pin); // Microsoft.ServiceFabric.Internal does not have friend access to System.Fabric. // Use reflection to access hook and override underlying native store implementation. // var method = typeof(KeyValueStoreReplica).GetMethod( "OverrideNativeKeyValueStore_V2", BindingFlags.NonPublic | BindingFlags.Instance); // We are invoking a method on KeyValueStoreReplica in System.Fabric.dll from // Microsoft.ServiceFabric.Internal.dll so the argument must be a type common to both dlls. // method.Invoke(this, new object[] { nativeKvsSettings }); this.Initialize(initParams); } }
public void Initialize(System.Fabric.StatefulServiceInitializationParameters initializationParameters) { }