I have a class called ConfigurationElementCollection<T>
It’s a generic implementation of System.Configuration.ConfigurationElementCollection
It’s stored in our solutions’, Project.Utility.dll but I’ve defined it as being part of the System.Configuration namespace
namespace System.Configuration
{
[ConfigurationCollection(typeof(ConfigurationElement))]
public class ConfigurationElementCollection<T> :
ConfigurationElementCollection where T : ConfigurationElement, new()
{
...
}
}
Is putting classes in the System.* namespaces considered bad practice when they aren’t part of the System.* Base Class Libraries ?
On the face of it, it seems to make sense, as it keeps similar classes with similar functionality in the same place. However it could cause confusion for someone who didn’t realise it was actually part of a non .net BCL as they wouldn’t know where to go hunting for the reference.
While your class is similar it is still not part of the BCL. I would not put it in System.* because of this. It will cause confusion especially when one goes to use it and they have System.* referenced and then get a nasty can’t find message when they go to use your class…. 🙂