using System.Collections.Generic;
public static class ExtensionMethods
public static Dictionary<string, object> Extract<T>(this T input) where T : class
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.ToDictionary( p => p.Name, p => p.GetValue(input));
public static void someFunction(object input)
var parameters = input.Extract();
Console.WriteLine("There were {0} parameters, as follows:", parameters.Count);
foreach (var p in parameters)
Console.WriteLine("{0}={1}", p.Key, p.Value);
public static void Main()
someFunction(new { number = 3, text = "SomeText" } );
someFunction(new { another = 3.14F, example = new DateTime(2017, 12, 15) } );