【问题标题】:Generating CRM Proxy classes as separate files将 CRM 代理类生成为单独的文件
【发布时间】:2014-02-27 22:48:52
【问题描述】:

我一直在使用引用 Dynamics CRM 租户的旧程序集。该程序集包含(除其他外)租户的代理类。我需要将代理类更新到最新版本。

我过去曾使用 crmsvcutil.exe 为租户生成代理类文件,但在此程序集中,每个类都位于各自单独的文件中。例如,有一个 'person' c-sharp 文件,其中包含人员实体的变量和 get/set 方法。

当前文件格式如下:

using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Xml.Serialization;
namespace CRM2011.Proxy.Organisation
{
    [GeneratedCode("System.Xml", "4.0.30319.1"), DesignerCategory("code"), DebuggerStepThrough, XmlType(Namespace = "http://schemas.microsoft.com/crm/2007/WebServices")]
    [Serializable]
public class thr_offer : BusinessEntity
{
    private Lookup createdbyField;
    private CrmDateTime createdonField;
    //More variables here
    public Lookup createdby
    {
        get
        {
            return this.createdbyField;
        }
        set
        {
            this.createdbyField = value;
        }
    }
    public CrmDateTime createdon
    {
        get
        {
            return this.createdonField;
        }
        set
        {
            this.createdonField = value;
        }
    }
    //More get/set methods here
}

这些似乎是由工具生成的,但我不知道有什么工具可以做到这一点。如果我可以生成诸如此类的文件,而不是 crmsvcutil.exe 生成的巨大文件,它将使开发变得更加容易。

有什么想法吗?

【问题讨论】:

    标签: c# proxy dynamics-crm-2011 dynamics-crm-4


    【解决方案1】:

    这些文件是使用 CRM 4.0 SDK 生成的(CrmDateTime 敲响了警钟)。

    使用 CRM 4.0 SDK 中的 CrmSvcUtil.exe,可以生成单独的文件,如下所述:

    http://msdn.microsoft.com/en-us/library/ff681563.aspx

    /输出参数

    确定 .cs 或 .xml 输出文件的名称以及是否存在 是一个文件或每个实体一个。它可能包括完整路径。如果你 指定一个不以 .cs 或 .xml 结尾的名称,CrmSvcUtil 将 将系统中每个实体的单独 .cs 文件写入 您指定的文件夹。例如,/out:MyClasses 输出一个类文件 (.cs) 将每个实体放到一个名为 MyClasses 的文件夹中。但是, /out:MyClasses.cs 输出一个类文件 (MyClasses.cs),其中包含 所有实体。

    此“功能”已从 CRM 2011 SDK 中删除(如果您尝试指定不带文件扩展名的名称,它仍会生成单个文件)

    【讨论】:

      【解决方案2】:

      您必须创建一个拼接器,在实体生成到单个文件后为您拼接它们,或者创建 CrmSvcUtil 扩展来为您执行这种基本的行为更改。

      编辑XrmToolBox中的Early Bound Generator通过配置完成的。

      【讨论】:

        猜你喜欢
        • 2012-01-09
        • 1970-01-01
        • 2014-05-23
        • 1970-01-01
        • 2023-03-29
        • 2020-06-01
        • 2020-10-15
        • 2014-08-30
        • 2021-12-05
        相关资源
        最近更新 更多