예제 #1
0
        void CreateConfiguration()
        {
            HandledType();
            var keyAndValueTypes = _type !.GetGenericArguments();

            _configurationId = ODBDictionaryConfiguration.Register(_keysHandler, keyAndValueTypes[0], null, null);
            var cfg = ODBDictionaryConfiguration.Get(_configurationId);

            lock (cfg)
            {
                cfg.KeyReader ??= CreateReader(_keysHandler, keyAndValueTypes[0]);
                cfg.KeyWriter ??= CreateWriter(_keysHandler, keyAndValueTypes[0]);
            }
        }
예제 #2
0
        int GetConfigurationId(Type type)
        {
            var keyAndValueTypes = type.GetGenericArguments();
            var configurationId  = ODBDictionaryConfiguration.Register(_keysHandler, keyAndValueTypes[0], _valuesHandler, keyAndValueTypes[1]);
            var cfg = ODBDictionaryConfiguration.Get(configurationId);

            lock (cfg)
            {
                cfg.KeyReader ??= CreateReader(_keysHandler, keyAndValueTypes[0]);
                cfg.KeyWriter ??= CreateWriter(_keysHandler, keyAndValueTypes[0]);
                cfg.ValueReader ??= CreateReader(_valuesHandler, keyAndValueTypes[1]);
                cfg.ValueWriter ??= CreateWriter(_valuesHandler, keyAndValueTypes[1]);
            }

            return(configurationId);
        }