ToDynamic

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.Dynamic;

using System.Web;


class DynamicDictionaryWrapper : DynamicObject
{
	protected readonly Dictionary<string,object> _source;
	
	public DynamicDictionaryWrapper(Dictionary<string,object> source)
	{
		_source = source;
	}

    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
	    result = null;
        return (_source.TryGetValue(binder.Name, out result));
    }
}
					
public class Program
{
	public static void Main()
	{
        var myDictionary = new Dictionary<string, dynamic> {
            { "ID1", 12 },
            { "ID2", "Text2"},
            { "ID3", "Text3" }
        };	
		dynamic myObject = new DynamicDictionaryWrapper(myDictionary);
		
		Console.WriteLine(myObject.ID1);
		Console.WriteLine(myObject.ID2);
		Console.WriteLine(myObject.ID3);
	}
}
;