internal Type GetNestedType(Type type, string name)
        {
            Type        nestedType;
            DynamicType dynamicType = dynamicAssembly.GetDynamicType(type);

            if (dynamicType != null)
            {
                nestedType = dynamicType.GetNestedType(name);
            }
            else
            {
                nestedType = type.GetNestedType(name, BindingFlags.Public | BindingFlags.NonPublic);
            }

            if (nestedType == null)
            {
                throw new InvalidOperationException(string.Format("Nested type not found: {0}+{1}", type, name));
            }
            return(nestedType);
        }