protected ServiceResult ValidateInputArgument(
ISystemContext context,
Variant inputArgument,
int index)
{
if (InputArguments == null)
{
return StatusCodes.BadInvalidArgument;
}
IList<Argument> arguments = InputArguments.Value;
if (arguments == null || index < 0 || index >= arguments.Count)
{
return StatusCodes.BadInvalidArgument;
}
Argument expectedArgument = arguments[index];
TypeInfo typeInfo = TypeInfo.IsInstanceOfDataType(
inputArgument.Value,
expectedArgument.DataType,
expectedArgument.ValueRank,
context.NamespaceUris,
context.TypeTable);
if (typeInfo == null)
{
return StatusCodes.BadTypeMismatch;
}
return ServiceResult.Good;
}