/// <summary>
        /// Create a named instance from a <see cref="PatternConverter"/>
        /// </summary>
        /// <param name="name">conversion name</param>
        /// <param name="pattern">pattern string</param>
        public RawCallLayout(string name, PatternString pattern)
        {
            Name = name;

            pattern.ActivateOptions();

            m_getter = (e) => pattern.Format();
        }
    public Object ConvertFrom(Object source)
    {
        String        pattern       = (String)source;
        PatternString patternString = new PatternString(pattern);
        String        value         = patternString.Format();

        return(Int32.Parse(value));
    }
Ejemplo n.º 3
0
        /// <summary>
        /// Converts the given value object to the specified type, using the arguments
        /// </summary>
        /// <param name="source">the object to convert</param>
        /// <param name="targetType">The Type to convert the value parameter to</param>
        /// <returns>the converted object</returns>
        /// <remarks>
        /// <para>
        /// Uses the <see cref="PatternString.Format()"/> method to convert the
        /// <see cref="PatternString"/> argument to a <see cref="String"/>.
        /// </para>
        /// </remarks>
        /// <exception cref="ConversionNotSupportedException">
        /// The <paramref name="source"/> object cannot be converted to the
        /// <paramref name="targetType"/>. To check for this condition use the
        /// <see cref="CanConvertTo"/> method.
        /// </exception>
        public object ConvertTo(object source, Type targetType)
        {
            PatternString patternString = source as PatternString;

            if (patternString != null && CanConvertTo(targetType))
            {
                return(patternString.Format());
            }
            throw ConversionNotSupportedException.Create(targetType, source);
        }
Ejemplo n.º 4
0
        public object ConvertTo(object source, Type targetType)
        {
            PatternString str = source as PatternString;

            if ((str == null) || !this.CanConvertTo(targetType))
            {
                throw ConversionNotSupportedException.Create(targetType, source);
            }
            return(str.Format());
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 测试AppSetting路径转换器(在配置的应用程序域中)
        /// </summary>
        public void TestAppSettingPathConverterInConfiguredDomain()
        {
            string        pattern          = "%appSetting{TestKey}";
            PatternString patternString    = new PatternString(pattern);
            string        evaluatedPattern = patternString.Format();
            string        appSettingValue  = ConfigurationManager.AppSettings["TestKey"];

            Assert.AreEqual("TestValue", appSettingValue, "Expected configuration file to contain a key TestKey with the value TestValue");
            Assert.AreEqual(appSettingValue, evaluatedPattern, "Evaluated pattern expected to be identical to appSetting value");

            string badPattern = "%appSetting{UnknownKey}";

            patternString    = new PatternString(badPattern);
            evaluatedPattern = patternString.Format();
            Assert.AreEqual("(null)", evaluatedPattern, "Evaluated pattern expected to be \"(null)\" for non-existent appSettings key");
        }
        public void TestEnvironmentFolderPathPatternConverter()
        {
            string[] specialFolderNames = Enum.GetNames(typeof(Environment.SpecialFolder));

            foreach (string specialFolderName in specialFolderNames)
            {
                string pattern = "%envFolderPath{" + specialFolderName + "}";

                PatternString patternString = new PatternString(pattern);

                string evaluatedPattern = patternString.Format();

                Environment.SpecialFolder specialFolder =
                    (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), specialFolderName);

                Assert.AreEqual(Environment.GetFolderPath(specialFolder), evaluatedPattern);
            }
        }