Esempio n. 1
0
        /// <summary>
        /// Defines a child token for simple replacement.
        /// </summary>
        /// <param name="replacement"></param>
        /// <param name="identifier"></param>
        /// <param name="specifyFormatters"></param>
        /// <returns></returns>
        public ISimpleToken Tokenize <TChild>(Func <TModel, TChild> replacement, string identifier, Action <OverrideFormatterSet> specifyFormatters = null)
        {
            Ensure.ArgumentNotNull(replacement, "replacement");
            Ensure.ArgumentNotNullOrEmpty(identifier, "identifier");

            var formatters = new OverrideFormatterSet();

            if (specifyFormatters != null)
            {
                specifyFormatters(formatters);
            }

            var formatter = GetValueFormatter <TChild>(formatters);

            _currentToken = new Token <TModel>
            {
                Resolve    = f => formatter.Format(replacement(f)),
                Identifier = string.Intern(identifier)
            };
            Token.AddChild(_currentToken);

            return(this);
        }
Esempio n. 2
0
 private IValueFormatter GetValueFormatter <TChild>(OverrideFormatterSet formatters)
 {
     return(_formatterSet.Resolve <TChild>(formatters) ?? new DelegateFormatter <TChild>(m => m.ToString()));
 }