How do I check if a property exists on a dynamic anonymous type in c#?
.net-4.0, c#, c#-4.0, dynamic, reflection
Solution
public static bool DoesPropertyExist(dynamic settings, string name)
{
if (settings is ExpandoObject)
return ((IDictionary<string, object>)settings).ContainsKey(name);
return settings.GetType().GetProperty(name) != null;
}
var settings = new {Filename = @"c:\temp\q.txt"};
Console.WriteLine(DoesPropertyExist(settings, "Filename"));
Console.WriteLine(DoesPropertyExist(settings, "Size"));
Output:
True
False
Problem
I have an anonymous type object that I receive as a dynamic from a method I would like to check in a property exists on that object. ``` .... var settings = new { Filename="temp.txt", Size=10 } ... function void Settings(dynamic settings) { var exists = IsSettingExist(settings,"Filename") } ``` How would I implement IsSettingExist ?