private async Task <AzureTableGrainStorage> InitAzureTableGrainStorage(bool useJson = false, TypeNameHandling?typeNameHandling = null) { var options = new AzureTableStorageOptions(); var jsonOptions = new JsonGrainStorageSerializerOptions { TypeNameHandling = typeNameHandling }; options.ConfigureTestDefaults(); // TODO change test to include more serializer? var binarySerializer = new OrleansGrainStorageSerializer(this.providerRuntime.ServiceProvider.GetRequiredService <Serializer>()); var jsonSerializer = new JsonGrainStorageSerializer(Options.Create(jsonOptions), this.providerRuntime.ServiceProvider); options.GrainStorageSerializer = useJson ? new GrainStorageSerializer(jsonSerializer, binarySerializer) : new GrainStorageSerializer(binarySerializer, jsonSerializer); AzureTableGrainStorage store = ActivatorUtilities.CreateInstance <AzureTableGrainStorage>(this.providerRuntime.ServiceProvider, options, "TestStorage"); ISiloLifecycleSubject lifecycle = ActivatorUtilities.CreateInstance <SiloLifecycleSubject>(this.providerRuntime.ServiceProvider); store.Participate(lifecycle); await lifecycle.OnStart(); return(store); }
private async Task <AzureTableGrainStorage> InitAzureTableGrainStorage(AzureTableStorageOptions options) { // TODO change test to include more serializer? var serializer = new OrleansGrainStorageSerializer(this.providerRuntime.ServiceProvider.GetRequiredService <Serializer>()); AzureTableGrainStorage store = ActivatorUtilities.CreateInstance <AzureTableGrainStorage>(this.providerRuntime.ServiceProvider, options, serializer, "TestStorage"); ISiloLifecycleSubject lifecycle = ActivatorUtilities.CreateInstance <SiloLifecycleSubject>(this.providerRuntime.ServiceProvider); store.Participate(lifecycle); await lifecycle.OnStart(); return(store); }