Как ссылаться на сборку в контексте веб-приложения ASP.NET - PullRequest
0 голосов
/ 14 июня 2019

У меня довольно острая проблема с веб-приложением ASP.NET, я использую Visual Studio Community 2017, целевую платформу .NET core 2.2.

Мне нужно проанализировать строку JSON и обнаружить, чтоSystem.Web.Script.Serialization может быть довольно полезным в этой ситуации.К сожалению, кажется, что visual studio не может найти пространство имен.Любая идея о том, как позволить IDE найти его?В противном случае, любые предложения о том, как загрузить / проанализировать файлы JSON другим способом, будут приняты с благодарностью.

Я попытался добавить ссылку в зависимости проекта к соответствующей сборке (System.Web.Extensions.dll), которые позволили visual studio найти пространство имен, но привели к следующей внутренней ошибке сервера:

BadImageFormatException: не удалось загрузить файл или сборку 'System.Web.Extensions, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken =31bf3856ad364e35.Ссылочные сборки не должны загружаться для выполнения.Они могут быть загружены только в контексте загрузчика только для отражения.(Исключение из HRESULT: 0x80131058)

Во время роуминга я видел чье-то предложение удалить сборку (System.Web.Extensions.dll) из файла \ bin, расположенного в проекте.Это также закончилось ошибкой: HTTP-ошибка 500.0 - Ошибка загрузки обработчика внутрипроцессного кода ANCM

Вот фрагмент кода, специфичный для части, в которой я хочу проанализировать файл JSON, в основном, если я его комментирую,веб-приложение работает нормально.


с использованием System.Web.Script.Serialization;

пространство имен myApp.Models

{

/* Class : MashModel
 * Downloads, parses and stores a list of elements from the JSON file
 * Author : SoraGtg
 */
public class Elements
{
    public List<Elements> elements { get; set; }

    public void GatherElts()
    {
        var json = new WebClient().DownloadString("url/to/json");
        this.elements = new JavaScriptSerializer().Deserialize<List<Cat>>(json);
    }
}

}


До сих пор я не пробовал ничего в представлениях и частях контроллера с данными, выданными json (свойство elements).

Я бы хотел, чтобы веб-приложение былоразвернуть и внедрить функции, предлагаемые сборкой System.Web.Extensions, но она не будет развернута, потому что не может найти их (не может ссылаться на сборку, не может найти ее сама).

Спасибо!

1 Ответ

1 голос
/ 14 июня 2019

Я думаю, вы пытаетесь использовать библиотеку, которая не является частью Net Core, и поэтому она не может загрузить DLL. Использование чего-то вроде NewtonsoftJson решит вашу проблему. У них есть версия для Net Core: https://github.com/JamesNK/Newtonsoft.Json

...