internal void Initialize()
{
// Get MethodsInfos and AddIn classes from assemblies
List<Type> rtdServerTypes = new List<Type>();
List<ExcelComClassType> comClassTypes = new List<ExcelComClassType>();
// Recursively get assemblies down .dna tree.
_exportedAssemblies = GetAssemblies(dnaResolveRoot);
AssemblyLoader.ProcessAssemblies(_exportedAssemblies, _methods, _addIns, rtdServerTypes, comClassTypes);
// Register RTD Server Types immediately
RtdRegistration.RegisterRtdServerTypes(rtdServerTypes);
// CAREFUL: This interacts with the implementation of ExcelRtdServer to implement the thread-safe synchronization.
// Check whether we have an ExcelRtdServer type, and need to install the Sync Window
// Uninstalled in the AutoClose
bool registerSyncManager = false;
foreach (Type rtdType in rtdServerTypes)
{
if (rtdType.IsSubclassOf(typeof(ExcelRtdServer)))
{
registerSyncManager = true;
break;
}
}
if (registerSyncManager) SynchronizationManager.Install(); // TODO: Careful here!?
// Register COM Server Types immediately
ComServer.RegisterComClassTypes(comClassTypes);
}