// This file is autogenerated by ClassMapGen. DO NOT EDIT using System; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace OSGeo.MapGuide { internal static class MgClassMap { static HashSet assemblyNames; static Dictionary classIdCtorMap; static Dictionary nameClassMap; static MgClassMap() { assemblyNames = new HashSet { "OSGeo.MapGuide.Foundation", "OSGeo.MapGuide.Geometry", "OSGeo.MapGuide.PlatformBase", "OSGeo.MapGuide.MapGuideCommon", "OSGeo.MapGuide.Web", "OSGeo.MapGuide.Portable" }; classIdCtorMap = new Dictionary(); var classNameMap = new Dictionary(); nameClassMap = new Dictionary(); if (HasAssemblyInAppDomain("OSGeo.MapGuide.Foundation")) { classIdCtorMap[1000] = ResolveConstructor("OSGeo.MapGuide.MgDisposableCollection"); classIdCtorMap[1002] = ResolveConstructor("OSGeo.MapGuide.MgPropertyCollection"); classIdCtorMap[1003] = ResolveConstructor("OSGeo.MapGuide.MgStringCollection"); classIdCtorMap[1004] = ResolveConstructor("OSGeo.MapGuide.MgStringPropertyCollection"); classIdCtorMap[1005] = ResolveConstructor("OSGeo.MapGuide.MgBatchPropertyCollection"); classIdCtorMap[1250] = ResolveConstructor("OSGeo.MapGuide.MgByteReader"); classIdCtorMap[1251] = ResolveConstructor("OSGeo.MapGuide.MgByteSource"); classIdCtorMap[1256] = ResolveConstructor("OSGeo.MapGuide.MgDateTime"); classIdCtorMap[1257] = ResolveConstructor("OSGeo.MapGuide.MgByteSink"); classIdCtorMap[1515] = ResolveConstructor("OSGeo.MapGuide.MgException"); classIdCtorMap[2000] = ResolveConstructor("OSGeo.MapGuide.MgProperty"); classIdCtorMap[2001] = ResolveConstructor("OSGeo.MapGuide.MgStringProperty"); classIdCtorMap[2002] = ResolveConstructor("OSGeo.MapGuide.MgPropertyDefinition"); classIdCtorMap[2251] = ResolveConstructor("OSGeo.MapGuide.MgDisposable"); classIdCtorMap[2252] = ResolveConstructor("OSGeo.MapGuide.MgObject"); } if (HasAssemblyInAppDomain("OSGeo.MapGuide.Geometry")) { classIdCtorMap[20000] = ResolveConstructor("OSGeo.MapGuide.MgPoint"); classIdCtorMap[20001] = ResolveConstructor("OSGeo.MapGuide.MgEnvelope"); classIdCtorMap[20002] = ResolveConstructor("OSGeo.MapGuide.MgGeometryFactory"); classIdCtorMap[20003] = ResolveConstructor("OSGeo.MapGuide.MgCoordinate"); classIdCtorMap[20004] = ResolveConstructor("OSGeo.MapGuide.MgAgfReaderWriter"); classIdCtorMap[20005] = ResolveConstructor("OSGeo.MapGuide.MgAggregateGeometry"); classIdCtorMap[20006] = ResolveConstructor("OSGeo.MapGuide.MgArcSegment"); classIdCtorMap[20008] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateCollection"); classIdCtorMap[20009] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateIterator"); classIdCtorMap[20010] = ResolveConstructor("OSGeo.MapGuide.MgCurve"); classIdCtorMap[20011] = ResolveConstructor("OSGeo.MapGuide.MgCurvePolygon"); classIdCtorMap[20012] = ResolveConstructor("OSGeo.MapGuide.MgCurveRing"); classIdCtorMap[20013] = ResolveConstructor("OSGeo.MapGuide.MgCurveSegment"); classIdCtorMap[20014] = ResolveConstructor("OSGeo.MapGuide.MgCurveString"); classIdCtorMap[20016] = ResolveConstructor("OSGeo.MapGuide.MgGeometricEntity"); classIdCtorMap[20019] = ResolveConstructor("OSGeo.MapGuide.MgGeometry"); classIdCtorMap[20020] = ResolveConstructor("OSGeo.MapGuide.MgGeometryCollection"); classIdCtorMap[20021] = ResolveConstructor("OSGeo.MapGuide.MgGeometryComponent"); classIdCtorMap[20023] = ResolveConstructor("OSGeo.MapGuide.MgLinearRing"); classIdCtorMap[20024] = ResolveConstructor("OSGeo.MapGuide.MgLinearSegment"); classIdCtorMap[20027] = ResolveConstructor("OSGeo.MapGuide.MgMeasure"); classIdCtorMap[20029] = ResolveConstructor("OSGeo.MapGuide.MgMultiCurvePolygon"); classIdCtorMap[20030] = ResolveConstructor("OSGeo.MapGuide.MgMultiCurveString"); classIdCtorMap[20031] = ResolveConstructor("OSGeo.MapGuide.MgMultiGeometry"); classIdCtorMap[20032] = ResolveConstructor("OSGeo.MapGuide.MgMultiLineString"); classIdCtorMap[20033] = ResolveConstructor("OSGeo.MapGuide.MgMultiPoint"); classIdCtorMap[20034] = ResolveConstructor("OSGeo.MapGuide.MgMultiPolygon"); classIdCtorMap[20035] = ResolveConstructor("OSGeo.MapGuide.MgPolygon"); classIdCtorMap[20037] = ResolveConstructor("OSGeo.MapGuide.MgRegion"); classIdCtorMap[20038] = ResolveConstructor("OSGeo.MapGuide.MgRing"); classIdCtorMap[20039] = ResolveConstructor("OSGeo.MapGuide.MgTransform"); classIdCtorMap[20040] = ResolveConstructor("OSGeo.MapGuide.MgWktReaderWriter"); classIdCtorMap[20041] = ResolveConstructor("OSGeo.MapGuide.MgCurveSegmentCollection"); classIdCtorMap[20042] = ResolveConstructor("OSGeo.MapGuide.MgLineString"); classIdCtorMap[20043] = ResolveConstructor("OSGeo.MapGuide.MgCurveStringCollection"); classIdCtorMap[20044] = ResolveConstructor("OSGeo.MapGuide.MgLineStringCollection"); classIdCtorMap[20045] = ResolveConstructor("OSGeo.MapGuide.MgPointCollection"); classIdCtorMap[20046] = ResolveConstructor("OSGeo.MapGuide.MgPolygonCollection"); classIdCtorMap[20047] = ResolveConstructor("OSGeo.MapGuide.MgCurvePolygonCollection"); classIdCtorMap[20048] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXY"); classIdCtorMap[20049] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXYZ"); classIdCtorMap[20050] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXYZM"); classIdCtorMap[20051] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateXYM"); classIdCtorMap[20052] = ResolveConstructor("OSGeo.MapGuide.MgCurveRingCollection"); classIdCtorMap[20053] = ResolveConstructor("OSGeo.MapGuide.MgLinearRingCollection"); classIdCtorMap[20054] = ResolveConstructor("OSGeo.MapGuide.MgGeometrySimplifier"); classIdCtorMap[20055] = ResolveConstructor("OSGeo.MapGuide.MgPreparedGeometry"); classIdCtorMap[20500] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystem"); classIdCtorMap[20501] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFactory"); classIdCtorMap[20502] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemMeasure"); classIdCtorMap[20503] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemTransform"); classIdCtorMap[20504] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemCatalog"); classIdCtorMap[20505] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFormatConverter"); classIdCtorMap[20506] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemCategory"); classIdCtorMap[20507] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDatum"); classIdCtorMap[20508] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformation"); classIdCtorMap[20509] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEllipsoid"); classIdCtorMap[20510] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemCategoryDictionary"); classIdCtorMap[20511] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDictionary"); classIdCtorMap[20512] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDatumDictionary"); classIdCtorMap[20513] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEllipsoidDictionary"); classIdCtorMap[20514] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEnum"); classIdCtorMap[20515] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemEnumInteger32"); classIdCtorMap[20516] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFilter"); classIdCtorMap[20517] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemFilterInteger32"); classIdCtorMap[20518] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemMathComparator"); classIdCtorMap[20519] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemUnitInformation"); classIdCtorMap[20520] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemProjectionInformation"); classIdCtorMap[20521] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemDictionaryUtility"); classIdCtorMap[20522] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemMgrs"); classIdCtorMap[20524] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridBoundary"); classIdCtorMap[20525] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridSpecification"); classIdCtorMap[20526] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridLineCollection"); classIdCtorMap[20527] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridRegionCollection"); classIdCtorMap[20528] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridTickCollection"); classIdCtorMap[20529] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridLine"); classIdCtorMap[20530] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridRegion"); classIdCtorMap[20531] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridTick"); classIdCtorMap[20532] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGridBase"); classIdCtorMap[20533] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticPath"); classIdCtorMap[20534] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticPathElement"); classIdCtorMap[20535] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticPathDictionary"); classIdCtorMap[20536] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDef"); classIdCtorMap[20540] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDefDictionary"); classIdCtorMap[20541] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformDefParams"); classIdCtorMap[20542] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticAnalyticalTransformDefParams"); classIdCtorMap[20543] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticInterpolationTransformDefParams"); classIdCtorMap[20544] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticMultipleRegressionTransformDefParams"); classIdCtorMap[20545] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticTransformGridFile"); classIdCtorMap[20546] = ResolveConstructor("OSGeo.MapGuide.MgCoordinateSystemGeodeticStandaloneTransformDefParams"); } if (HasAssemblyInAppDomain("OSGeo.MapGuide.PlatformBase")) { classIdCtorMap[10000] = ResolveConstructor("OSGeo.MapGuide.MgIntCollection"); classIdCtorMap[10001] = ResolveConstructor("OSGeo.MapGuide.MgPropertyDefinitionCollection"); classIdCtorMap[10003] = ResolveConstructor("OSGeo.MapGuide.MgStringPropertyCollection"); classIdCtorMap[10004] = ResolveConstructor("OSGeo.MapGuide.MgParameterCollection"); classIdCtorMap[10250] = ResolveConstructor("OSGeo.MapGuide.MgColor"); classIdCtorMap[10251] = ResolveConstructor("OSGeo.MapGuide.MgPropertyDefinition"); classIdCtorMap[10252] = ResolveConstructor("OSGeo.MapGuide.MgBlobProperty"); classIdCtorMap[10253] = ResolveConstructor("OSGeo.MapGuide.MgBooleanProperty"); classIdCtorMap[10254] = ResolveConstructor("OSGeo.MapGuide.MgByteProperty"); classIdCtorMap[10255] = ResolveConstructor("OSGeo.MapGuide.MgClobProperty"); classIdCtorMap[10256] = ResolveConstructor("OSGeo.MapGuide.MgDateTimeProperty"); classIdCtorMap[10257] = ResolveConstructor("OSGeo.MapGuide.MgDoubleProperty"); classIdCtorMap[10258] = ResolveConstructor("OSGeo.MapGuide.MgInt16Property"); classIdCtorMap[10259] = ResolveConstructor("OSGeo.MapGuide.MgInt32Property"); classIdCtorMap[10260] = ResolveConstructor("OSGeo.MapGuide.MgInt64Property"); classIdCtorMap[10261] = ResolveConstructor("OSGeo.MapGuide.MgSingleProperty"); classIdCtorMap[12000] = ResolveConstructor("OSGeo.MapGuide.MgMapBase"); classIdCtorMap[12001] = ResolveConstructor("OSGeo.MapGuide.MgLayerGroup"); classIdCtorMap[12002] = ResolveConstructor("OSGeo.MapGuide.MgLayerCollection"); classIdCtorMap[12003] = ResolveConstructor("OSGeo.MapGuide.MgLayerBase"); classIdCtorMap[12004] = ResolveConstructor("OSGeo.MapGuide.MgLayerGroupCollection"); classIdCtorMap[12005] = ResolveConstructor("OSGeo.MapGuide.MgMapCollection"); classIdCtorMap[12006] = ResolveConstructor("OSGeo.MapGuide.MgReadOnlyLayerCollection"); classIdCtorMap[12007] = ResolveConstructor("OSGeo.MapGuide.MgSelectionBase"); classIdCtorMap[11251] = ResolveConstructor("OSGeo.MapGuide.MgService"); classIdCtorMap[11257] = ResolveConstructor("OSGeo.MapGuide.MgWarnings"); classIdCtorMap[11750] = ResolveConstructor("OSGeo.MapGuide.MgClassDefinition"); classIdCtorMap[11751] = ResolveConstructor("OSGeo.MapGuide.MgDataPropertyDefinition"); classIdCtorMap[11753] = ResolveConstructor("OSGeo.MapGuide.MgFeatureReader"); classIdCtorMap[11754] = ResolveConstructor("OSGeo.MapGuide.MgFeatureService"); classIdCtorMap[11756] = ResolveConstructor("OSGeo.MapGuide.MgGeometricPropertyDefinition"); classIdCtorMap[11757] = ResolveConstructor("OSGeo.MapGuide.MgGeometry"); classIdCtorMap[11758] = ResolveConstructor("OSGeo.MapGuide.MgGeometryProperty"); classIdCtorMap[11759] = ResolveConstructor("OSGeo.MapGuide.MgObjectPropertyDefinition"); classIdCtorMap[11761] = ResolveConstructor("OSGeo.MapGuide.MgSpatialContextReader"); classIdCtorMap[11762] = ResolveConstructor("OSGeo.MapGuide.MgSqlDataReader"); classIdCtorMap[11764] = ResolveConstructor("OSGeo.MapGuide.MgFeatureProperty"); classIdCtorMap[11766] = ResolveConstructor("OSGeo.MapGuide.MgLongTransactionReader"); classIdCtorMap[11768] = ResolveConstructor("OSGeo.MapGuide.MgRasterPropertyDefinition"); classIdCtorMap[11769] = ResolveConstructor("OSGeo.MapGuide.MgRaster"); classIdCtorMap[11770] = ResolveConstructor("OSGeo.MapGuide.MgRasterProperty"); classIdCtorMap[11771] = ResolveConstructor("OSGeo.MapGuide.MgFeatureQueryOptions"); classIdCtorMap[11772] = ResolveConstructor("OSGeo.MapGuide.MgFeatureAggregateOptions"); classIdCtorMap[11773] = ResolveConstructor("OSGeo.MapGuide.MgDataReader"); classIdCtorMap[11774] = ResolveConstructor("OSGeo.MapGuide.MgFeatureCommandCollection"); classIdCtorMap[11775] = ResolveConstructor("OSGeo.MapGuide.MgDeleteFeatures"); classIdCtorMap[11776] = ResolveConstructor("OSGeo.MapGuide.MgInsertFeatures"); classIdCtorMap[11777] = ResolveConstructor("OSGeo.MapGuide.MgUpdateFeatures"); classIdCtorMap[11778] = ResolveConstructor("OSGeo.MapGuide.MgFeatureSchema"); classIdCtorMap[11779] = ResolveConstructor("OSGeo.MapGuide.MgFeatureSchemaCollection"); classIdCtorMap[11780] = ResolveConstructor("OSGeo.MapGuide.MgClassDefinitionCollection"); classIdCtorMap[11782] = ResolveConstructor("OSGeo.MapGuide.MgGwsFeatureReader"); classIdCtorMap[11785] = ResolveConstructor("OSGeo.MapGuide.MgGeometryTypeInfo"); classIdCtorMap[11786] = ResolveConstructor("OSGeo.MapGuide.MgFileFeatureSourceParams"); classIdCtorMap[11787] = ResolveConstructor("OSGeo.MapGuide.MgTransaction"); classIdCtorMap[11788] = ResolveConstructor("OSGeo.MapGuide.MgParameter"); classIdCtorMap[11500] = ResolveConstructor("OSGeo.MapGuide.MgResourceIdentifier"); classIdCtorMap[11501] = ResolveConstructor("OSGeo.MapGuide.MgResourceService"); classIdCtorMap[11526] = ResolveConstructor("OSGeo.MapGuide.MgResource"); } if (HasAssemblyInAppDomain("OSGeo.MapGuide.MapGuideCommon")) { classIdCtorMap[30500] = ResolveConstructor("OSGeo.MapGuide.MgMap"); classIdCtorMap[30501] = ResolveConstructor("OSGeo.MapGuide.MgLayer"); classIdCtorMap[30502] = ResolveConstructor("OSGeo.MapGuide.MgSelection"); classIdCtorMap[30601] = ResolveConstructor("OSGeo.MapGuide.MgSiteConnection"); classIdCtorMap[30604] = ResolveConstructor("OSGeo.MapGuide.MgPackageStatusInformation"); classIdCtorMap[30605] = ResolveConstructor("OSGeo.MapGuide.MgSite"); classIdCtorMap[30606] = ResolveConstructor("OSGeo.MapGuide.MgUserInformation"); classIdCtorMap[30607] = ResolveConstructor("OSGeo.MapGuide.MgServerAdmin"); classIdCtorMap[30608] = ResolveConstructor("OSGeo.MapGuide.MgSiteInfo"); classIdCtorMap[30700] = ResolveConstructor("OSGeo.MapGuide.MgDrawingService"); classIdCtorMap[30900] = ResolveConstructor("OSGeo.MapGuide.MgMappingService"); classIdCtorMap[30901] = ResolveConstructor("OSGeo.MapGuide.MgDwfVersion"); classIdCtorMap[30902] = ResolveConstructor("OSGeo.MapGuide.MgPlotSpecification"); classIdCtorMap[30904] = ResolveConstructor("OSGeo.MapGuide.MgLayout"); classIdCtorMap[30905] = ResolveConstructor("OSGeo.MapGuide.MgMapPlot"); classIdCtorMap[30906] = ResolveConstructor("OSGeo.MapGuide.MgMapPlotCollection"); classIdCtorMap[31000] = ResolveConstructor("OSGeo.MapGuide.MgRenderingService"); classIdCtorMap[31001] = ResolveConstructor("OSGeo.MapGuide.MgFeatureInformation"); classIdCtorMap[31002] = ResolveConstructor("OSGeo.MapGuide.MgRenderingOptions"); classIdCtorMap[31003] = ResolveConstructor("OSGeo.MapGuide.MgMetatile"); classIdCtorMap[31200] = ResolveConstructor("OSGeo.MapGuide.MgTileService"); classIdCtorMap[31300] = ResolveConstructor("OSGeo.MapGuide.MgKmlService"); classIdCtorMap[31400] = ResolveConstructor("OSGeo.MapGuide.MgProfilingService"); } if (HasAssemblyInAppDomain("OSGeo.MapGuide.Web")) { classIdCtorMap[50000] = ResolveConstructor("OSGeo.MapGuide.MgWebCommand"); classIdCtorMap[50001] = ResolveConstructor("OSGeo.MapGuide.MgWebUiTargetCommand"); classIdCtorMap[50002] = ResolveConstructor("OSGeo.MapGuide.MgWebSearchCommand"); classIdCtorMap[50003] = ResolveConstructor("OSGeo.MapGuide.MgWebInvokeScriptCommand"); classIdCtorMap[50004] = ResolveConstructor("OSGeo.MapGuide.MgWebInvokeUrlCommand"); classIdCtorMap[50005] = ResolveConstructor("OSGeo.MapGuide.MgWebBufferCommand"); classIdCtorMap[50006] = ResolveConstructor("OSGeo.MapGuide.MgWebSelectWithinCommand"); classIdCtorMap[50007] = ResolveConstructor("OSGeo.MapGuide.MgWebPrintCommand"); classIdCtorMap[50008] = ResolveConstructor("OSGeo.MapGuide.MgWebMeasureCommand"); classIdCtorMap[50009] = ResolveConstructor("OSGeo.MapGuide.MgWebGetPrintablePageCommand"); classIdCtorMap[50010] = ResolveConstructor("OSGeo.MapGuide.MgWebViewOptionsCommand"); classIdCtorMap[50011] = ResolveConstructor("OSGeo.MapGuide.MgWebHelpCommand"); classIdCtorMap[50012] = ResolveConstructor("OSGeo.MapGuide.MgWebCommandCollection"); classIdCtorMap[50013] = ResolveConstructor("OSGeo.MapGuide.MgWebWidget"); classIdCtorMap[50014] = ResolveConstructor("OSGeo.MapGuide.MgWebSeparatorWidget"); classIdCtorMap[50015] = ResolveConstructor("OSGeo.MapGuide.MgWebCommandWidget"); classIdCtorMap[50016] = ResolveConstructor("OSGeo.MapGuide.MgWebFlyoutWidget"); classIdCtorMap[50017] = ResolveConstructor("OSGeo.MapGuide.MgWebTaskBarWidget"); classIdCtorMap[50018] = ResolveConstructor("OSGeo.MapGuide.MgWebWidgetCollection"); classIdCtorMap[50019] = ResolveConstructor("OSGeo.MapGuide.MgWebUiPane"); classIdCtorMap[50020] = ResolveConstructor("OSGeo.MapGuide.MgWebUiSizablePane"); classIdCtorMap[50021] = ResolveConstructor("OSGeo.MapGuide.MgWebToolBar"); classIdCtorMap[50022] = ResolveConstructor("OSGeo.MapGuide.MgWebInformationPane"); classIdCtorMap[50023] = ResolveConstructor("OSGeo.MapGuide.MgWebTaskBar"); classIdCtorMap[50024] = ResolveConstructor("OSGeo.MapGuide.MgWebTaskPane"); classIdCtorMap[50025] = ResolveConstructor("OSGeo.MapGuide.MgWebContextMenu"); classIdCtorMap[50026] = ResolveConstructor("OSGeo.MapGuide.MgWebLayout"); classIdCtorMap[40000] = ResolveConstructor("OSGeo.MapGuide.MgHttpHeader"); classIdCtorMap[40001] = ResolveConstructor("OSGeo.MapGuide.MgHttpRequestParam"); classIdCtorMap[40002] = ResolveConstructor("OSGeo.MapGuide.MgHttpRequestMetadata"); classIdCtorMap[40003] = ResolveConstructor("OSGeo.MapGuide.MgHttpResult"); classIdCtorMap[40004] = ResolveConstructor("OSGeo.MapGuide.MgHttpRequest"); classIdCtorMap[40005] = ResolveConstructor("OSGeo.MapGuide.MgHttpResponse"); classIdCtorMap[40006] = ResolveConstructor("OSGeo.MapGuide.MgHttpPrimitiveValue"); } //Sanity check that we haven't double registered the same type name under different //class ids (Only possible when class id is being accidentally reused in a base or //derived C++ class) foreach (var kvp in classNameMap) { if (nameClassMap.ContainsKey(kvp.Value)) { throw new Exception($"Failed sanity check. Type ({kvp.Value}) already registered with class id of ({kvp.Key})"); } nameClassMap[kvp.Value] = kvp.Key; } } internal static IEnumerable ClassIds => classIdCtorMap.Keys; internal static int? GetClassId(string typeName) { return nameClassMap.ContainsKey(typeName) ? nameClassMap[typeName] : (int?)null; } internal static ConstructorInfo GetProxyConstructor(int classId) { return classIdCtorMap.ContainsKey(classId) ? classIdCtorMap[classId] : null; } static bool HasAssemblyInAppDomain(string assemblyName) { #if MONOLITHIC_ASSEMBLY return true; #else var assemblies = global::System.AppDomain.CurrentDomain.GetAssemblies(); foreach (var assem in assemblies) { var asmName = new global::System.Reflection.AssemblyName(assem.FullName); if (asmName.Name == assemblyName) { return true; } } return false; #endif } static ConstructorInfo ResolveConstructor(string typeName) { var type = global::System.Type.GetType(typeName); if (type == null) { // Find the specified class in the pre-defined assemblies var assemblies = global::System.AppDomain.CurrentDomain.GetAssemblies(); foreach (var assem in assemblies) { var assemblyName = new global::System.Reflection.AssemblyName(assem.FullName); if (assemblyNames.Contains(assemblyName.Name)) { type = assem.GetType(typeName, false); if (type != null) break; } } // Fall back to finding the type in every assembly in the current appdomain foreach (var assem in global::System.AppDomain.CurrentDomain.GetAssemblies()) { type = assem.GetType(typeName, false); if (type != null) break; } } if (type == null) //Shouldn't happen. But if it did, this would mean we didn't expose this class to SWIG { throw new global::System.Exception("The type " + typeName + " does not exist in the list of loaded assemblies"); } else { //The constructor we require has been assigned internal visibility by SWIG. We could change it to public, but the internal //visibility is the ideal one for purposes of encapulsation (this is internal use only). So instead of Activator.CreateInstance() //which does not work with internal constructors, we'll find the ctor ourselves and invoke it. var flags = global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.Instance; var ctors = type.GetTypeInfo().GetConstructors(flags); var ctor = ctors.FirstOrDefault(ci => { var parms = ci.GetParameters(); if (parms.Length == 2) { return parms[0].ParameterType == typeof(global::System.IntPtr) && parms[1].ParameterType == typeof(bool); } return false; }); if (ctor == null) throw new global::System.Exception("Could not find required constructor among " + ctors.Length + " constructors with signature (IntPtr, bool) on type: " + type.Name); return ctor; } } } }