代码之家  ›  专栏  ›  技术社区  ›  Tom Hanson

CloseQuoteRequest引发异常

  •  0
  • Tom Hanson  · 技术社区  · 6 年前

    我正在尝试使用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 回复  |  直到 6 年前
        1
  •  0
  •   Arun Vinoth PrecogTechnologies    6 年前

    代码示例来自 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);
    

    请求名
    获取或设置请求的名称。必需,但由派生类提供。(从OrganizationRequest继承。)

    状态
    status属性对应于quote.statuscode属性。它在Microsoft Dynamics 365应用程序中显示为状态原因。如果将此属性的值设置为-1,则系统将设置相应的状态值。

        2
  •  0
  •   Tom Hanson    6 年前

    我不知道为什么会出现这种情况,但是在QuoteClose实体中添加.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);