public JsonNextLinkConverter() { var collectionType = typeof(T); _reader = ReadAccessor.Create(collectionType, AccessorMemberTypes.Properties, AccessorMemberScope.Public, out _members); _writer = WriteAccessor.Create(collectionType, AccessorMemberTypes.Properties, AccessorMemberScope.Public); }
public DocumentDbRepository(string slot, IOptionsMonitor <DocumentDbOptions> options, ISafeLogger <DocumentDbRepository <T> > logger) { _reads = ReadAccessor.Create(typeof(T)); _writes = WriteAccessor.Create(typeof(T)); _slot = slot; _options = options; _logger = logger; var defaultSettings = new JsonSerializerSettings(); var documentDbOptions = options.Get(_slot); _client = new DocumentClient(EndpointUri, documentDbOptions.AccountKey, defaultSettings); _client2 = new CosmosClient(EndpointUri.ToString(), documentDbOptions.AccountKey, new CosmosClientOptions { AllowBulkExecution = true, ConnectionMode = ConnectionMode.Gateway, MaxRetryAttemptsOnRateLimitedRequests = 100 }); CreateDatabaseIfNotExistsAsync().Wait(); CreateCollectionIfNotExistsAsync().Wait(); }
public JsonMergePatch(Type type) { _reads = ReadAccessor.Create(type, AccessorMemberTypes.Properties, AccessorMemberScope.Public, out _members); _writes = WriteAccessor.Create(type); _data = Activator.CreateInstance <T>(); _changed = new HashSet <string>(); }
public PropertyAccessor(ITypeReadAccessor reads, ITypeWriteAccessor writes, string name) { var members = AccessorMembers.Create(reads.Type, AccessorMemberTypes.Properties); Info = members.PropertyInfo.Single(m => m.Name == name); Type = Info.PropertyType; Name = name; _reads = reads; _writes = writes; }
public PropertyAccessor(ITypeReadAccessor reads, ITypeWriteAccessor writes, Type type, string name) { Type = type; Name = name; _reads = reads; _writes = writes; var members = AccessorMembers.Create(type); Info = members.PropertyInfo.SingleOrDefault(m => m.Name == name); var member = members.SingleOrDefault(p => p.Name == name); if (member == null) { return; } _member = member; }
public JsonDeltaConverter() { _reader = ReadAccessor.Create(typeof(T), AccessorMemberTypes.Properties, AccessorMemberScope.Public, out _members); _writer = WriteAccessor.Create(typeof(T), AccessorMemberTypes.Properties, AccessorMemberScope.Public); }
private static void SetMembers(IConfiguration configuration, object instance, BinderOptions options, AccessorMembers members, ITypeReadAccessor read, ITypeWriteAccessor write, IEnumerable <ICustomConfigurationBinder> customBinders) { foreach (var member in members) { // We don't support set only, non-public, or indexer properties if (!member.CanRead || member.MemberInfo is MethodInfo method && method.GetParameters().Length > 0) { continue; } var value = read[instance, member.Name]; if (value == null && !member.CanWrite) { // Property doesn't have a value and we cannot set it so there is no // point in going further down the graph continue; } var config = configuration.GetSection(member.Name); value = BindInstance(member.Type, value, config, options, customBinders); if (value == default || !member.CanWrite) { continue; } write.TrySetValue(instance, member.Name, value); } }