private void ProcessTemplateObject (ObjectContext ctx)
{
JObject jtemplate = ctx.JObj;
Type targetType = GetTypeInfo(jtemplate).TargetType;
if (targetType == null) {
var strTargetType = FormatScalarPropertyValue(jtemplate[pnTargetType]);
targetType = GetTypeInfo(jtemplate).TargetType = GetTypeByName(strTargetType.StartsWith("{x:Type ")
? strTargetType.Substring(8, strTargetType.Length - 9).Trim() : strTargetType);
}
if (jtemplate[pnOn] != null) {
if (jtemplate[pnTriggers] == null)
jtemplate[pnTriggers] = new JArray();
var jtriggers = ((JObject)jtemplate[pnOn]).Properties().Select(p => GetJObjectTrigger(p, targetType)).ToArray();
((JArray)jtemplate[pnTriggers]).Add(jtriggers);
jtemplate.Remove(pnOn);
}
}