ExtensionMethod.NET Home of 880 C#, Visual Basic, F# and Javascript extension methods

Format

string formator,replece string.Format

Source

/// <summary>
/// string formator,replece string.Format
/// </summary>
/// <example>string result = StrFormater.Format(@"Hello @Name! Welcome to C#!", new { Name = "World" });///</example>
/// <param name="template"></param>
/// <param name="data"></param>
/// <returns></returns>
public static string Format(this string template, object data)
{
    return Regex.Replace(template, @"@([\w\d]+)", match => GetValue(match, data));
}

static string GetValue(Match match, object data)
{
    var paraName = match.Groups[1].Value;
    try
    {
        var proper = data.GetType().GetProperty(paraName);
        return proper.GetValue(data).ToString();
    }
    catch (Exception)
    {
        var errMsg = string.Format("Not find'{0}'", paraName);
        throw new ArgumentException(errMsg);
    }
}

Example

string result = StrFormater.Format(@"Hello @Name! Welcome to C#!", new { Name = "World" });

Author: pedoc

Submitted on: 4 aug. 2015

Language: C#

Type: string

Views: 3346