Я пытаюсь закрыть цитату в MSCRM с помощью C # CloseQuoteRequest.
CloseQuoteRequest closeQuoteRequest = new CloseQuoteRequest()
{
QuoteClose = new QuoteClose()
{
QuoteId = quote.ToEntityReference(),
Subject = "Quote Close " + DateTime.Now.ToString(),
},
Status = new OptionSetValue(-1),
RequestName = "CloseQuote",
};
Service.Execute(closeQuoteRequest);
Я получаю сообщение об ошибке;
Форматировщик выдал исключение при попытке десериализации сообщения: При попытке десериализации параметра произошла ошибка http://schemas.microsoft.com/xrm/2011/Contracts/Services: просить. Сообщение InnerException было «Ошибка в строке 1 позиции 711. Элемент http://schemas.datacontract.org/2004/07/System .Collections.Generic : значение » содержит данные из типа, который отображается на имя ' CRM.Entities.Entities : QuoteClose . Десериализатор не знает любого типа, который сопоставляется с этим именем. Рассмотрите возможность изменения реализация метода ResolveName в вашем DataContractResolver вернуть ненулевое значение для имени «QuoteClose» и пространства имен ' CRM.Entities.Entities '. ' . Пожалуйста, смотрите InnerException для более подробности.
Для меня нет внутреннего исключения.
3 ответа
Я не знаю, почему это так, но добавление .ToEntity () к объекту QuoteClose сработало.
CloseQuoteRequest closeQuoteRequest = new CloseQuoteRequest()
{
QuoteClose = new QuoteClose()
{
QuoteId = quote.ToEntityReference(),
Subject = "Quote Close " + DateTime.Now.ToString(),
}.ToEntity<Entity>(),
Status = new OptionSetValue(-1),
RequestName = "CloseQuote",
};
Service.Execute(closeQuoteRequest);
Пример кода из MSDN не задано свойство RequestName = "CloseQuote"
, так как оно не нужно. Убери это.
// Close the quote
CloseQuoteRequest closeQuoteRequest = new CloseQuoteRequest()
{
QuoteClose = new QuoteClose()
{
QuoteId = closeQuote.ToEntityReference(),
Subject = "Quote Close " + DateTime.Now.ToString()
},
Status = new OptionSetValue(-1)
};
_serviceProxy.Execute(closeQuoteRequest);
< Сильный > RequestName
Получает или задает имя запроса. Требуется, но предоставляется производными классами. (Унаследовано от OrganizationRequest.)< Сильный > Статус
Свойство Status соответствует атрибуту Quote.StatusCode. Он отображается как «Причина состояния» в приложении Microsoft Dynamics 365. Если для этого свойства установлено значение -1, система устанавливает соответствующее соответствующее значение состояния.
WinQuoteRequest winQuoteRequest = new WinQuoteRequest();
Entity wonQuoteClose = new Entity("quoteclose");
wonQuoteClose.Attributes["quoteid"] = new EntityReference("quote", id);
wonQuoteClose.Attributes["subject"] = "Quote Close" + DateTime.Now.ToString();
winQuoteRequest.QuoteClose = wonQuoteClose;
winQuoteRequest.Status = new OptionSetValue(-1);
service.Execute(winQuoteRequest);
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.