我ODataV4Metadata.xml
从 Microsoft Dynamics 365下载了该文件。该文件包含许多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
,其属性类似于
[DataMember(Name = "overriddencreatedon")]
public System.DateTimeOffset? Overriddencreatedon
{
get
{
return this._Overriddencreatedon;
}
set
{
this._Overriddencreatedon = value;
}
}
当我在 .NET-core 中工作时,这似乎是不可能的。我能够生成一个巨大的(10 万行代码)文件,其中EntityTypes
包含大量注释。但是,虽然我可以使用生成的类,但我似乎无法在 .NET-core 中执行此操作。第二个问题是,它只生成一个文件,其中包含所有类(并且它没有预先使用using
关键字包含所有名称空间)
是否有任何工具具有更大的灵活性,可在 .NET-core 中工作并在单独的文件中生成类?谷歌搜索它在 ASP.NET 和 .NET v4 中提供了许多解决方案。
如果有必要,我会制作一个开源工具来做到这一点,但也许我看的地方还不够多。
我检查的来源:
用于创建早期绑定代理类的开箱即用工具是CrmSvcUtil。
Daryl LaBar为XrmToolbox编写了早期绑定生成器,我相信它利用了 CrmSvcUtil。
D365 有一个名为XrmToolkit的商业 VS 附加组件,它包括创建代理类的能力(使用专有算法,因此它们与 CrmSvcUtil 生成的类不同)。这是我使用的工具,它确实将每个类创建为一个单独的文件。
附带说明一下,Jason Lattimer 的D365 Developer Extensions有很多有用的功能,但我认为它没有内置代理类生成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句