Dynamics CRM 插件共享变量 - 对象或数组
Dynamics CRM Plugin Shared variables - Object or Array
我们有一个场景,我们需要计算多个费用组成部分并在插件的 Pre 和 Post 阶段之间共享。所以我们创建了这样的对象。
class FeeCalculation
{
public string TotalFee { get; set; }
public string FilingFee { get; set; }
public string LegalFee { get; set; }
public string RecordFee { get; set; }
}
到目前为止,我们使用的单一费用组件和共享变量运行良好。当尝试分配整个对象时 - 结果并不成功。
context.SharedVariables.Add("fees", fcObject);
有没有办法达到这个预期的效果?
插件基础结构必须能够 serialize/deserialize 您 SharedVariables
集合中的对象。它不了解 FeeCalculation
class 等自定义类型,因此无法对其进行序列化。
使用原始类型、常见的 .NET 类型(例如 List
小数应该可以)或 CRM 类型(Entity
、Money
等)。值得注意的是 SharedVariables
集合是一个键值对集合。那么,为什么不直接使用 "TotalFee"、"FilingFee" 等键向其中添加项目呢?
我试图分享一个 IEnumerable<Guid>
,但是 collections 像 List
没有用。
当然你总是可以序列化为字符串,但你的插件代码真的不应该处理常见类型的序列化。
经过反复试验,我最终使用了数组,即 Guid[]
。
我们有一个场景,我们需要计算多个费用组成部分并在插件的 Pre 和 Post 阶段之间共享。所以我们创建了这样的对象。
class FeeCalculation
{
public string TotalFee { get; set; }
public string FilingFee { get; set; }
public string LegalFee { get; set; }
public string RecordFee { get; set; }
}
到目前为止,我们使用的单一费用组件和共享变量运行良好。当尝试分配整个对象时 - 结果并不成功。
context.SharedVariables.Add("fees", fcObject);
有没有办法达到这个预期的效果?
插件基础结构必须能够 serialize/deserialize 您 SharedVariables
集合中的对象。它不了解 FeeCalculation
class 等自定义类型,因此无法对其进行序列化。
使用原始类型、常见的 .NET 类型(例如 List
小数应该可以)或 CRM 类型(Entity
、Money
等)。值得注意的是 SharedVariables
集合是一个键值对集合。那么,为什么不直接使用 "TotalFee"、"FilingFee" 等键向其中添加项目呢?
我试图分享一个 IEnumerable<Guid>
,但是 collections 像 List
没有用。
当然你总是可以序列化为字符串,但你的插件代码真的不应该处理常见类型的序列化。
经过反复试验,我最终使用了数组,即 Guid[]
。