В вашем коде много ошибок, также ключевое слово unsafe
здесь бесполезно
Я думаю, что вы можете искать это
// get the size
int size = Marshal.SizeOf(tempData);
// Create some unmanaged memory
IntPtr ptr = Marshal.AllocHGlobal(size);
// marshal the structure to pointer
Marshal.StructureToPtr(tempData, ptr, false);
// call the funky api
sendMessageToHSM((int)HSM_COMMANDS.HSM_GUI_PC_UPDATE_STEP_CALIB, ptr);
// get the result if there is any
_TempData tempData2 = (_TempData)Marshal.PtrToStructure(ptr, typeof(_TempData));
// clean up the memory
Marshal.FreeHGlobal(ptr);
Также в C # мы не делаем имя типа с подчеркиванием
Функция ends-with()
не определяется для XPath 1.0, но только для XPath 2.0 и XQuery.
Вы используете.NET..NET в эту дату не реализует XPath 2.0, XSLT 2.0 или XQuery.
Можно легко создать выражение XPath 1.0, оценка которого приводит к тому же результату как функция ends-with()
:
$str2 = substring($str1, string-length($str1)- string-length($str2) +1)
приводит к тому же булеву результату (true()
или false()
) как:
ends-with($str1, $str2)
В Вашем конкретном случае просто необходимо заменить правильными выражениями $str1
и $str2
. Они, соответственно, /myXml/data
и 'World'
.
Так, выражение XPath 1.0 для использования, который эквивалентен выражению XPath 2.0 ends-with(/myXml/data, 'World')
:
'World' =
substring(/myXml/data,
string-length(/myXml/data) - string-length('World') +1
)