private static object ToExpandedNodeId(object value, BuiltInType sourceType)
{
// check for array conversions.
Array array = value as Array;
if (array != null)
{
ExpandedNodeId[] output = new ExpandedNodeId[array.Length];
for (int ii = 0; ii < array.Length; ii++)
{
output[ii] = (ExpandedNodeId)Cast(array.GetValue(ii), BuiltInType.ExpandedNodeId);
}
return output;
}
// handle for supported conversions.
switch (sourceType)
{
case BuiltInType.ExpandedNodeId:
{
return (ExpandedNodeId)value;
}
case BuiltInType.NodeId:
{
return (ExpandedNodeId)(NodeId)value;
}
case BuiltInType.String:
{
return ExpandedNodeId.Parse((string)value);
}
}
// conversion not supported.
return null;
}