本文整理汇总了C#中Opc.Ua.DataValue.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# DataValue.GetType方法的具体用法?C# DataValue.GetType怎么用?C# DataValue.GetType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Opc.Ua.DataValue
的用法示例。
在下文中一共展示了DataValue.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DataValueToPropertyValue
/// <summary>
/// Extracts a property value from a data value.
/// </summary>
private object DataValueToPropertyValue(DataValue value, Type expectedType, out int error)
{
error = ResultIds.E_INVALID_PID;
// check for null.
if (value == null)
{
return null;
}
// check status code.
error = MapPropertyReadStatusToErrorCode(value.StatusCode);
if (error < 0)
{
return null;
}
if (expectedType != null)
{
// check for scalar extension object.
ExtensionObject extension = value.Value as ExtensionObject;
if (extension != null)
{
if (expectedType.IsInstanceOfType(extension.Body))
{
return extension.Body;
}
error = ResultIds.E_BADTYPE;
return null;
}
// check for array of extension objects.
ExtensionObject[] extensions = value.Value as ExtensionObject[];
if (extensions != null)
{
Type elementType = value.GetType().GetElementType();
// handle explicit type conversion.
Array result = Array.CreateInstance(elementType, extensions.Length);
for (int ii = 0; ii < extensions.Length; ii++)
{
result.SetValue(extensions[ii].Body, ii);
}
return result;
}
// check if a specific type was requested.
if (!expectedType.IsInstanceOfType(value.Value))
{
error = ResultIds.E_BADTYPE;
return null;
}
return value.Value;
}
// convert value.
return ValueToVariantValue(value.Value, out error);
}