Esempio n. 1
0
            public override void SetValue(string valAsString)
            {
                // Get the generic type of the setter
                Type genericType = setter.GetType().GetGenericArguments()[0];

                // Find the 'Parse' method on that type
                System.Reflection.MethodInfo parser = null;
                try
                {
                    parser = genericType.GetMethod("Parse", new Type[] { typeof(String) });
                }
                catch (Exception e)
                {
                    // m_log.ErrorFormat("{0} Exception getting parser for type '{1}': {2}", LogHeader, genericType, e);
                    parser = null;
                }
                if (parser != null)
                {
                    // Parse the input string
                    try
                    {
                        T setValue = (T)parser.Invoke(genericType, new Object[] { valAsString });
                        // Store the parsed value
                        setter(setValue);
                        // // m_log.DebugFormat("{0} Parameter {1} = {2}", LogHeader, name, setValue);
                    }
                    catch
                    {
                        // m_log.ErrorFormat("{0} Failed parsing parameter value '{1}' as type '{2}'", LogHeader, valAsString, genericType);
                    }
                }
                else
                {
                    // m_log.ErrorFormat("{0} Could not find parameter parser for type '{1}'", LogHeader, genericType);
                }
            }