Advanced C# - Dynamic Type