DataContractResolver 返回名称“StringBuilder”和命名空间“System.Text”的非空值

问题描述

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Runtime.Serialization;
 using Microsoft.Xrm.Sdk;
 using Microsoft.Xrm.Sdk.Query;
 using System.ServiceModel;

 namespace Patient_registration_number
{

public class Patient_registration_number : IPlugin
{
   
    public void Execute(IServiceProvider serviceProvider)
    {
        try
        {
            IPluginExecutionContext context = 
                 
      (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

            if (context.MessageName == "Create")
            {
                if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] 
              is Entity)
                {
                    IOrganizationServiceFactory serviceFactory = 
      (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                    IOrganizationService service = 
     (IOrganizationService)serviceFactory.CreateOrganizationService(context.UserId);
                    Entity accountentity = context.InputParameters["Target"] as Entity;

                    if (accountentity.LogicalName == "account")
                    {
                        Entity Update_current_number = new 
              Entity("preetham_patient_auto_number_registration");
                        
                        StringBuilder autonumber = new StringBuilder();
                        DateTime date = DateTime.Now;
                        string prefix;
                        string suffix;
                        string separator;
                        string current;
                        string year;
                        string month;
                        string day;
                        day = date.Day.ToString("00");
                        year = date.Year.ToString();
                        month = date.Month.ToString("00");
                        
                        QueryExpression query = new QueryExpression()
                        {
                            EntityName = "preetham_patient_auto_number_registration",ColumnSet = new ColumnSet("preetham_name","preetham_prefix","preetham_separator","preetham_sufix","preetham_currentnumber")
                        };

                        EntityCollection patient_register_number = service.RetrieveMultiple(query);
                        if (patient_register_number.Entities.Count == 0)
                        {
                            return;
                        }
                        foreach (Entity number_format in patient_register_number.Entities)
                        {
                            if (number_format.Attributes.Contains("preetham_name"))
                            {
                                prefix = number_format.GetAttributeValue<string>("preetham_prefix");
                                suffix = number_format.GetAttributeValue<string>("preetham_sufix");
                                separator = number_format.GetAttributeValue<string>("preetham_separator");
                                current = number_format.GetAttributeValue<string>("preetham_currentnumber");
                                int temcurrent = int.Parse(current);
                                temcurrent++;
                                current = temcurrent.ToString("000000");
                                Update_current_number.Id = number_format.Id;
                                Update_current_number.Attributes["preetham_currentnumber"] = temcurrent.ToString();
                                service.Update(Update_current_number);
                                autonumber.Append(prefix + separator + date + month + year + separator + suffix + separator + current);
                                accountentity.Attributes["preetham_registrationnumber"] = autonumber;
                                


                            }
                        }

                    }
                }
            }


        }
        catch (Exception ex)
        {
            ITracingService tracingService = 
        (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            tracingService.Trace("Exception",ex);
        }
       }
     }
    }

包含来自映射到名称“System.Text:StringBuilder”的类型的数据。解串器不知道映射到此名称的任何类型。考虑更改 DataContractResolver 上 ResolveName 方法的实现,以返回名称“StringBuilder”和命名空间“System.Text”的非空值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)