Как указать, где находится путь к файлу json в C#?
У меня есть 3 проекта под моим решением. Один из них-это основной базовый проект, где я хочу иметь json-файл "Testdata.json".
Я должен использовать этот файл во всех 3-х проектах.. Как я могу получить путь динамически, не жестко кодируя его, и избежать размещения всех 3-х проектов.
//Обновление:
Как упоминал OriginalGriff, я создал публичный статический метод для записи в файл json, чтения его и возврата в моем основном проекте "Project1", на который ссылаются два других проекта.
//Это находится в проекте 1
public class JsonDataProvider { public static string filePath; public static string writeToJson(IRestResponse response) { string json = response.Content; string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase; string actualPath = path.Substring(0, path.LastIndexOf("bin")); string projectPath = new Uri(actualPath).LocalPath; filePath = projectPath + @"TestData.json"; File.WriteAllText(filePath, json); string data = GetData(); return data; } public static string GetData() { string data = File.ReadAllText(filePath); return data; } }
//В моем "проекте 2" я использую это..
[Test] public void GetAPITest() { restResponse = HttpGet(); string expectedJson =JsonDataProvider.writeToJson(restResponse); }
Что я уже пробовал:
Я пробовал .GetCallingAssembly, но таким образом я должен иметь файл json в каждом проекте.
string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase; string actualPath = path.Substring(0, path.LastIndexOf("bin")); string projectPath = new Uri(actualPath).LocalPath; string fileToRead = projectPath + @"TestData.json";
Также пробовать
string path = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.Parent.FullName, "TestData.json");
но я получаю путь = C:\Users\TestData.json , исключение: система.UnauthorizedAccessException : доступ к пути 'C:\Users\TestData.json-это отрицается.