Я пытаюсь запустить довольно простой код в непосредственном окне Visual Studio. Весь код выполняет чтение некоторого ввода JSON из файла и использует его для вызова некоторых других методов для загрузки базы данных со значениями. Вот код блока:Вызов метода C# VS в непосредственном окне, Получение 'System.Threading.ThreadAbortException'
using Newtonsoft.Json.Linq;
using System;
using System.IO;
namespace POST.API
{
public class Initialization
{
public const string JSON_DATA_FILE = "C:\\OHA_SDD_POST_Development\\POST\\POST.API\\Services\\Setup\\InitializationData.json";
public const string JSON_OBJKEY_DOMAIN = "Domain";
public const string JSON_OBJKEY_ACCOUNTDOMAINTYPE = "AccountDomainType";
public const string JSON_OBJKEY_ORGLOCTYPE = "OrganizationLocationType";
public JObject POSTDataInitJObject;
public JArray Domains;
public JArray AccountDomainRoles;
public JArray OrganizationLocationTypes;
public API.Services.Domain SvcDomain;
public API.Services.Organization SvcOrganization;
public API.Services.Location SvcLocation;
/// <summary>
///
/// </summary>
/// <param name="JsonDataFile"></param>
public Initialization(string JsonDataFile = JSON_DATA_FILE)
{
string JsonData = File.ReadAllText(JsonDataFile);
POSTDataInitJObject = JObject.Parse(JsonData);
Domains = (JArray)POSTDataInitJObject[JSON_OBJKEY_DOMAIN];
AccountDomainRoles = (JArray)POSTDataInitJObject[JSON_OBJKEY_ACCOUNTDOMAINTYPE];
OrganizationLocationTypes = (JArray)POSTDataInitJObject[JSON_OBJKEY_ORGLOCTYPE];
}
/// <summary>
///
/// </summary>
public void Load()
{
LoadDomains();
LoadOrganizationLocationTypes();
}
/// <summary>
///
/// </summary>
/// <param name="Replace"></param>
public void LoadDomains(bool Replace = true)
{
SvcDomain = new API.Services.Domain();
if (Replace)
{
SvcDomain.ClearAllDomains(true);
}
foreach (var i in Domains)
{
SvcDomain.AddDomain(new API.Models.Domain
{
Code = (string)i["Code"],
Definition = new API.Models.TypeDefinition
{
Name = (string)i["Name"],
Description = (string)i["Description"],
Order = Int32.Parse((string)i["Order"])
}
});
}
}
/// <summary>
///
/// </summary>
/// <param name="Replace"></param>
public void LoadOrganizationLocationTypes(bool Replace = true)
{
SvcLocation = new API.Services.Location();
if (Replace)
{
SvcLocation.ClearAllOrganizationLocationTypes();
}
foreach (var i in OrganizationLocationTypes)
{
SvcLocation.AddOrganizationLocationType(new API.Models.OrganizationLocationType
{
Definition = new API.Models.TypeDefinition
{
Name = (string)i["Name"],
Description = (string)i["Description"],
Order = Int32.Parse((string)i["Order"])
}
});
}
}
}
}
Я могу успешно создать экземпляр объекта в окне Immediate, но когда я затем попытаться вызвать этот метод Load(), на этом случае, я получаю:
Первый случайное исключение типа «System.Threading.ThreadAbortException» произошло в mscorlib.dll
Для оценки требуется, чтобы поток выполнялся временно. Используйте окно «Смотреть», чтобы выполнить оценку.
У меня есть alraedy отключен Опции -> Debug -> Включить оценку свойств и другие неявные вызовы функций.
Попал в тупик ... Кажется, очень просто, и я полностью не могу пройти мимо него.
Могу ли я узнать, почему вы хотите сделать это в ближайшем окне? – CodingYoshi
Вы пытаетесь устранить ошибку? или убедитесь, что содержимое JSON загружено правильно? –
Итак, причина, по которой вы хотите запустить в непосредственном окне, состоит в том, что код является одноразовым. I.e., он используется только для инициализации некоторых вещей при настройке новой базы данных. Поэтому у меня нет средств настройки для вызова его из другого места. Я имею в виду, я мог бы настроить консольное приложение. намереваться на нее, я полагаю, но просто пытался избежать этого. И при тестировании мне нужно много запускать, поэтому проще всего сделать это в ближайшем окне. –