Ik ben net een tijdje zoet geweest met uit te zoeken hoe ik van een "qualified string", of hoe je dat ook wilt noemen, een System.Enum type kan maken. Het aanmaken van een System.Type van die string is geen probleem.
Alleen kan ik niet vinden hoe ik van daaruit een System.Enum kan maken. Uiteindelijk heb ik dit gedaan:
Maar dan moet ik die assembly-naam hebben. Aangezien ik al een System.Type kan aanmaken zonder die assembly-naam, lijkt het mij dat ik zonder ook een System.Enum moet kunnen aanmaken. Maar hoe dan
De System.Reflection.Emit.EnumBuilder class ben ik wel al tegengekomen, maar ook daar zie ik geen handige manier om mijn doel te bereiken.
Iemand die mij een duw in de goede richting kan geven?
PS: Ik zoek dus niet Enum.Parse, aangezien die uitgaat van een instantie ipv het type zelf.
C#:
1
2
| string strType = "MyType"; System.Type.GetType(strType); |
Alleen kan ik niet vinden hoe ik van daaruit een System.Enum kan maken. Uiteindelijk heb ik dit gedaan:
C#:
1
2
3
4
| string strAssembly = "MyAssembly"; string strType = "MyType"; ObjectHandle enumHandle = Activator.CreateInstance(strAssembly, strType); Enum enumType = enumHandle.Unwrap(); |
Maar dan moet ik die assembly-naam hebben. Aangezien ik al een System.Type kan aanmaken zonder die assembly-naam, lijkt het mij dat ik zonder ook een System.Enum moet kunnen aanmaken. Maar hoe dan
De System.Reflection.Emit.EnumBuilder class ben ik wel al tegengekomen, maar ook daar zie ik geen handige manier om mijn doel te bereiken.
Iemand die mij een duw in de goede richting kan geven?
PS: Ik zoek dus niet Enum.Parse, aangezien die uitgaat van een instantie ipv het type zelf.
Wij onderbreken deze thread voor reclame:
http://kalders.be