首页 文章

CloseQuoteRequest抛出异常

提问于
浏览
0

我试图使用C#CloseQuoteRequest在MSCRM中关闭引用 .

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:request时出错 . InnerException消息是'第1行位置错误711.元素'http://schemas.datacontract.org/2004/07/System.Collections.Generic:value'包含来自映射到名称'CRM.Entities的类型的数据.Entities:QuoteClose” . 反序列化器不知道映射到此名称的任何类型 . 考虑更改DataContractResolver上的ResolveName方法的实现,以返回名称'QuoteClose'和名称空间'CRM.Entities.Entities'的非空值 . ' . 有关更多详细信息,请参阅InnerException .

我没有内心的例外 .

2 回答

  • 0

    我不知道为什么会这样,但是在QuoteClose Entity中添加了.ToEntity() .

    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);
    
  • 0

    来自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,系统将设置相应的相应状态值 .

相关问题