Hi, In my settings file, I would like to have one setting that is of the type List(of Myclass).... I can't find anything on the net that does this. Is it possible?
Yes it is possible, just type List<SomeType> into the type field manually, it should work.
You could serialize your List<T>
to a string, and put that in your settings file.
Would that work?
I assume you're talking about user settings...
I don't know if you can specify a generic type, although if you create your own non-generic type which inherits from List(of MyClass), then you can specify this type as your user setting without any problem.
Something like:
Public Class MyClassList
Inherits List(Of MyClass)
End Class
Then you should be able to browse for MyClassList .
I agree that Meta-Knight's inheritance solution is best, however it is possible to do this by manually editing the setting XML file. In Solution Explorer go to: Solution > Project > Properties > Settings.settings. Right-click on Settings.settings and choose "Open With". Select "XML (Text) Editor". Then insert the following inside <Settings>
:
<Setting Name="TestGenericList" Type="System.Collections.Generic.List<int>" Scope="User">
<Value Profile="(Default)" />
</Setting>
save, and it works.
Unfortunately it doesn't appear to work with generic types requiring two or more types, since the comma is not allowed in that attribute. Even entity-encoding it (,
) didn't help.
The following causes an error "Illegal characters in path" when you go to edit the settings file in the settings designer:
<Setting Name="TestGenericDictionary" Type="System.Collections.Generic.Dictionary<string,string>" Scope="User">
<Value Profile="(Default)" />
</Setting>