我从Microsoft Dynamics 365下载了文件John
。此文件包含许多ODataV4Metadata.xml
标记,其中描述了类。作为参考,这是它的(部分)外观:
EntityType
例如,这应该生成一个名为<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Microsoft.Dynamics.CRM" Alias="mscrm">
<EntityType Name="crmbaseentity" Abstract="true" />
<EntityType Name="accountleads" BaseType="mscrm.crmbaseentity">
<Key>
<PropertyRef Name="accountleadid" />
</Key>
<Property Name="accountleadid" Type="Edm.Guid" />
<Property Name="overriddencreatedon" Type="Edm.DateTimeOffset" />
<Property Name="timezoneruleversionnumber" Type="Edm.Int32" />
<Property Name="importsequencenumber" Type="Edm.Int32" />
...etc
的类,其属性如
Accountleads
当我在.NET内核中工作时,这似乎是不可能的。我能够生成包含所有注释的所有[DataMember(Name = "overriddencreatedon")]
public System.DateTimeOffset? Overriddencreatedon
{
get
{
return this._Overriddencreatedon;
}
set
{
this._Overriddencreatedon = value;
}
}
组成的巨大文件(10万行代码)。但是,尽管我能够使用生成的类,但似乎无法在.NET-core中执行此操作。
第二个问题是,它只生成一个文件,其中包含所有类(并且它没有使用EntityTypes
关键字预先包含所有名称空间)
是否有任何工具具有更大的灵活性,可以在.NET核心中运行并且可以在单独的文件中生成类?谷歌搜索它为ASP.NET和.NET v4提供了许多解决方案。
如有必要,我将制作一个开放源代码工具来执行此操作,但是也许我没有看足够的地方。
我检查的来源:
答案 0 :(得分:1)
用于创建早期绑定代理类的现成工具为CrmSvcUtil。
Daryl LaBar为Early Bound Generator编写了XrmToolbox,我相信它利用了CrmSvcUtil。
有一个用于D365的商业VS插件,名为XrmToolkit,它具有创建代理类的能力(使用专有算法,因此与CrmSvcUtil生成的类不同)。这是我使用的工具,它确实将每个类创建为单独的文件。
作为旁注,Jason Lattimer的D365 Developer Extensions具有许多有用的功能,但是我不相信它具有内置的代理类生成。