У меня есть динамический словарь, который заполняется во время выполнения,
Dictionary<string, Type> (где строка будет иметь имя свойства, а тип будет иметь тип свойства) Теперь я хочу создать класс изиз этого,
Dictionary<string, Type>
как мне добиться этого в Silverlight?
Dictionary<string, Type> props = new Dictionary<string,Type>(); props["Id"] = typeof(int); props["Name"] = typeof(string); AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("AsemName"), AssemblyBuilderAccess.RunAndSave); ModuleBuilder mb = ab.DefineDynamicModule("ModuleName"); TypeBuilder typeBuilder = mb.DefineType("TypeName", TypeAttributes.Public); foreach(var name in props.Keys){ typeBuilder.DefineField(name, props[name], FieldAttributes.Public); } Type type = typeBuilder.CreateType(); object o = type.GetConstructor(Type.EmptyTypes).Invoke(null); //Verfication: Console.WriteLine("Type is: " + o.GetType()); foreach (var field in o.GetType().GetFields()) { Console.WriteLine(" " + field.Name + " of type " + field.ReflectedType); }
Я не верю, что вы можете сделать это во время выполнения (сгенерировать класс), что вы можете сделать, это использовать ExpandoObject , доступный в .net 4.0.