protected virtual void InitializeObjectIDs() { ObjectIDs = ObjectType.GetCustomAttribute <ObjectIDsAttribute>()?.ObjectIDs.Cast <int?>().ToArray() ?? Array.Empty <int?>(); if (typeof(SpecialObject).IsAssignableFrom(ObjectType) && !ObjectType.IsAbstract) { var validObjectIDs = (int[])ObjectTypeProperties.Where(p => p.Name == "ValidObjectIDs").First().GetValue(Constructor.Invoke(null)); if (validObjectIDs != null) { ObjectIDs = validObjectIDs.Cast <int?>().ToArray(); } } }
private string GetConfigPath() { var configPath = ObjectType.Name; var rootAttribute = ObjectType.GetCustomAttribute <ConfigurationRootAttribute>(); if (rootAttribute != null) { configPath = rootAttribute.Path; if (rootAttribute.BuildingStrategy == RootStrategy.AppendClassNameToPath) { configPath = configPath + "." + ObjectType.Name; } } return(configPath); }