public static Type[] GetObjectTypes(Dictionary<ObjectType, Type> availableObjectTypes)
{
lock (availableObjectTypes)
{
if (availableObjectTypes.Count == 0)
{
foreach (Type type in typeof(GXDLMS).Assembly.GetTypes())
{
if (!type.IsAbstract && typeof(GXDLMSObject).IsAssignableFrom(type))
{
GXDLMSObject obj = Activator.CreateInstance(type) as GXDLMSObject;
availableObjectTypes[obj.ObjectType] = type;
}
}
}
return availableObjectTypes.Values.ToArray();
}
}