12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using Microsoft.Azure.Documents.Client;
- using System;
- namespace TEAMModelOS.SDK.Module.AzureCosmosDB.Configuration
- {
- public sealed class CosmosDBClientSingleton
- {
- private static string _connectionUrl;
- private static string _connectionKey;
- private DocumentClient CosmosClient;
- private CosmosDBClientSingleton() { }
- public DocumentClient GetCosmosDBClient()
- {
- if (CosmosClient != null)
- {
- return CosmosClient;
- }
- else
- {
- getInstance(_connectionUrl, _connectionKey);
- return CosmosClient;
- }
- }
- public static CosmosDBClientSingleton getInstance(string connectionUrl, string connectionKey)
- {
- _connectionUrl = connectionUrl;
- _connectionKey = connectionKey;
- return SingletonInstance.instance;
- }
- private static class SingletonInstance
- {
- public static CosmosDBClientSingleton instance = new CosmosDBClientSingleton()
- {
- CosmosClient = new DocumentClient(new Uri(_connectionUrl), _connectionKey, ConnectionPolicy)
- };
- private static readonly ConnectionPolicy ConnectionPolicy = new ConnectionPolicy
- {
- ConnectionMode = ConnectionMode.Direct,
- ConnectionProtocol = Protocol.Tcp
- };
- }
- }
- }
|