Никакой LINQ не необходим. SortedDictionary имеет конструктора, чтобы сделать преобразование.
public SortedDictionary<TKey,TValue> Convert<TKey,TValue>(Dictionary<TKey,TValue> map) {
return new SortedDictionary<TKey,TValue>(map);
}
В проекте модульного теста добавьте событие после сборки, которое копирует XML-файл в выходной каталог. Затем вы можете использовать исходный код для получения XML-файла.
Событие post build будет выглядеть примерно так:
copy $(SolutionDir)file.xml $(ProjectDir)$(OutDir)file.xml
Вам также может понадобиться это, чтобы добавить к вашему пути:
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
You can build those files into your executable (set their "Build Action" property to "Embedded Resource") and then get them using the Assembly.GetManifestResourceStream method
.
Я бы просто поместил путь в app.config и загрузил бы с пути по умолчанию. В моей команде я очень плохо отношусь к тому, что разработчики меняют пути, поэтому я заставляю всех моих разработчиков иметь одинаковые точные пути и файлы на своих компьютерах, поэтому у меня нет проблем с тем, что какой-либо мошеннический разработчик меняет путь, чтобы настроить его рабочее пространство.
Например, все разработчики в моей команде должны использовать C: \ Project \ Product \ Module и т. Д. Я также удостоверяюсь, что все их установленное программное обеспечение также является стандартным. Таким образом, я могу легко подключить любую машину к любой другой.