Hi Arne,
use Reflection! Since X# currently does not need initializations like the Vulcan runtime, you should be able to do it.
I'm doing this regularly:
foreach cDLLName as string in oDLLs
cFullPath := Path.Combine( cPath, cDLLName )
oAssembly := Assembly.LoadFrom( cFullPath )
oClasses := Utility.AssemblyClasses( oAssembly, "ProdConfigBase.IConfiguration" )
foreach cClassName as string in oClasses
oConfiguration := ( IConfiguration ) oAssembly:CreateInstance( cClassName )
if oConfiguration != null
++nLoaded
oConfiguration:Initialize( oWindow, ProgSettings.Language )
if oConfiguration:LastException != null
MessageBox.Show( string.Format( e"Error loading configuration DLL {0}\n\n{1}\n\n{2}", cDLLName, oConfiguration:LastException:Message, oConfiguration:LastException:StackTrace ) )
endif
ProgSettings.ProduktConfigurations:Add( oConfiguration )
endif
next
next
Wolfgang