Я использую Magento.RestApi в большой системе, где я загружаю код динамически из DLL.
Когда я использую приведенный ниже код в автономном проекте, онработает нормально:
private async void dostuff() {
var client = new MagentoApi()
.Initialize("<url>", "key", "secret")
.AuthenticateAdmin("user", "pass");
var response = await client.GetProductBySku("sku");
// The response contains the result or errors
if (!response.HasErrors) {
var product = response.Result;
... do stuff with the result ...
}
}
Но при загрузке в более крупном проекте появляется сообщение «Запрос не был успешно выполнен», также при попытке отловить ошибку, чтобы найти InnerException
или трассировку стека.кажется, что отладчик больше не работает.Распечатка трассировки стека дает мне:
at Magento.RestApi.MagentoApi.<HandleResponse>d__35`1.MoveNext() in C:\Users\bart\Documents\Visual Studio 2015\Projects\SapphireMagentoDriver\SapphireMagentoDriver\MagentoApi.cs:line 445
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Magento.RestApi.MagentoApi.<Execute>d__34`1.MoveNext() in C:\Users\bart\Documents\Visual Studio 2015\Projects\SapphireMagentoDriver\SapphireMagentoDriver\MagentoApi.cs:line 410
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Magento.RestApi.MagentoApi.<GetProductBySku>d__45.MoveNext() in C:\Users\bart\Documents\Visual Studio 2015\Projects\SapphireMagentoDriver\SapphireMagentoDriver\MagentoApi.cs:line 708
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Magento.RestApi.SapphireMagentoDriver.<DoDownloadArticles>d__6.MoveNext() in C:\Users\bart\Documents\Visual Studio 2015\Projects\SapphireMagentoDriver\SapphireMagentoDriver\DriverInterface.cs:line 103
Мне пришлось скомпилировать Magento.RestApi
из исходного кода, поскольку пакет NuGet использует пакет NewtonSoft.Json
, отличный от моего большого проекта.Это прекрасно работает в автономной версии.