要解决BizTalk映射器不显示其他程序集中存储的外部数据结构类型的元素的问题,可以使用以下解决方法:
使用TypeDescriptors来注册外部程序集中的数据结构类型。在映射器中,找到要使用的外部类型的元素。右键单击该元素并选择“属性”。在属性窗口中,找到“类型描述符”属性。单击“...”按钮以打开TypeDescriptors对话框。
在TypeDescriptors对话框中,单击“添加程序集”按钮。选择包含外部数据结构类型的程序集,并单击“确定”。
在TypeDescriptors对话框中,单击“添加类型”按钮。选择要注册的外部数据结构类型,并单击“确定”。
在映射器中,应该能够看到已注册的外部类型的元素,并将其用于映射。
下面是一个示例代码,演示如何使用TypeDescriptors注册外部程序集中的数据结构类型:
using Microsoft.XLANGs.BaseTypes;
using Microsoft.XLANGs.Core;
using System;
using System.ComponentModel;
using System.Reflection;
namespace MyBizTalkSchemas
{
public partial class MyTransform : TransformBase
{
public override void RegisterTypeDesc(TypeDescriptionCollection tc)
{
base.RegisterTypeDesc(tc);
// 注册外部程序集中的数据结构类型
Assembly externalAssembly = Assembly.LoadFrom("ExternalAssembly.dll");
tc.AddExternalAssembly(externalAssembly);
}
}
}
这段代码将外部程序集"ExternalAssembly.dll"加载到映射器中,并注册其中的数据结构类型。这样,映射器就能够显示和使用这些外部类型的元素了。请确保将代码中的"ExternalAssembly.dll"替换为实际的外部程序集文件名。