Bonsoir,
J'ai un petit problème avec le mot clé dynamique
Je créer une classe dynamiquement, comme ceci
On a donc un objet k de type "DynType" et qui dispose d'un champ "DynField".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var asm = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("DynAsm"), AssemblyBuilderAccess.Run); var mod = asm.DefineDynamicModule("DynMod"); var type = mod.DefineType("DynType"); var ttt = type.DefineField("DynField", typeof(string), FieldAttributes.Public); var ctor = type.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, Type.EmptyTypes); var il = ctor.GetILGenerator(); il.Emit(OpCodes.Ret); var t = type.CreateType(); dynamic k = Activator.CreateInstance(t);
Malheureusement, l'accès au champ entraîne une RuntimeBinderException.
Et l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var result = k.DynField;
'object' ne contient pas de définition pour 'DynField'
Le mot clé 'dynamic' est t'il donc inutilisable sur les types crées dynamiquement?
Partager