繁体   English   中英

将 CRM 代理类生成为单独的文件

[英]Generating CRM Proxy classes as separate files

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

我过去曾使用 crmsvcutil.exe 为租户生成代理 class 文件,但在此程序集中,每个类都在自己单独的文件中。 例如,有一个“person”c-sharp 文件,其中包含 person 实体的变量和 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 生成的庞大文件,那将使开发变得更加容易。

有任何想法吗?

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

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

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

/ out参数

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

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

您可能需要创建一个拼接器,以便在将实体生成到一个文件中之后为您拼接这些实体,或者创建CrmSvcUtil扩展来为您执行此基本行为更改。

编辑 XrmToolBox中的Early Bound Generator通过配置进行的操作。

Microsoft.CrmSdk.CoreTools 9.1.0.108 中包含的 CrmSvcUtil支持使用命令行 arguments /splitfiles/outdirectory将实体(和其他类型)拆分为单个文件。

注意:CrmSvcUtil 并非 100% 清楚/splitfiles参数,因为它本身被引用为/SplitToFiles

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM