public object PackPod(object s) { Type t; var s1 = s as PodMultiDimArray; if (s1 != null) { t = s1.pod_array.GetType().GetElementType(); } else { var s2 = s as Array; if (s2 != null) { t = s2.GetType().GetElementType(); } else { t = s.GetType(); } } string typename; if (CompareNamespace(ServiceDefinitionUtil.FindStructRRType(t), out typename)) { return(FindPodStub(typename).PackPod(s)); } else { return(node.PackPod(s, context)); } }