Exemplo n.º 1
0
        protected sealed override bool Convert(object[] values, TParamIn _parameter, CultureInfo culture, out TDestinationOut result)
        {
            if (Convert(values, ParameterConverters.Convert(_parameter), culture, out TDestinationIn _result))
            {
                result = DestinationConverters.ConvertBack(_result);

                return(true);
            }

            result = DestinationConverters.GetDefaultValue <TDestinationOut>();

            return(false);
        }
Exemplo n.º 2
0
        public void RegisterPlugins(CSharpConverter converter)
        {
            if (converter == null)
            {
                throw new ArgumentNullException(nameof(converter));
            }
            ConvertBegin.Clear();
            AfterPreprocessing.Clear();
            GetCSharpNameResolvers.Clear();
            GetCSharpTypeResolvers.Clear();
            GetCSharpContainerResolvers.Clear();
            CompilationConverters.Clear();
            CommentConverters.Clear();
            EnumConverters.Clear();
            EnumItemConverters.Clear();
            ClassConverters.Clear();
            FieldConverters.Clear();
            FunctionConverters.Clear();
            FunctionTypeConverters.Clear();
            ParameterConverters.Clear();
            TypedefConverters.Clear();
            Converting.Clear();
            Converted.Clear();
            ConvertEnd.Clear();
            RegisteredPlugins.Clear();

            for (var index = Options.Plugins.Count - 1; index >= 0; index--)
            {
                var plugin = Options.Plugins[index];
                if (RegisteredPlugins.Contains(plugin))
                {
                    continue;
                }

                RegisteredPlugins.Add(plugin);
                plugin.Register(converter, this);
            }
        }
Exemplo n.º 3
0
 protected sealed override object[] ConvertBack(TDestinationOut _value, TParamIn _parameter, CultureInfo culture) => ConvertBack(DestinationConverters.Convert(_value), ParameterConverters.Convert(_parameter), culture);