簡體   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