Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从IronPython检索c#字节数组(字节[])?_C#_Ironpython - Fatal编程技术网

如何从IronPython检索c#字节数组(字节[])?

如何从IronPython检索c#字节数组(字节[])?,c#,ironpython,C#,Ironpython,我有一个c#函数,可以从IronPython调用。该函数返回一个字节数组,我想将其转换为字符串以进行显示和比较 Python告诉我将下面的输入参数-(out Byte[]DataOut)作为类型“StrongBox[Array[Byte]]”传递,因此我用 如何将其转换为字符串 namespace My_Library.My_Namespace { /// </summary> public class My_App : OSI_Layer {

我有一个c#函数,可以从IronPython调用。该函数返回一个字节数组,我想将其转换为字符串以进行显示和比较

Python告诉我将下面的输入参数-(out Byte[]DataOut)作为类型“StrongBox[Array[Byte]]”传递,因此我用

如何将其转换为字符串

namespace My_Library.My_Namespace
{
    /// </summary>
    public class My_App : OSI_Layer
    {

        public bool My_Function(out Byte[] DataOut)
        {

        // fill up DataOut with a string 

            return (Send(out DataOut));
        }

    // etc...
    }

}

//////////////////////////
//
// IronPython
//
// From IronPython I...

>>>
>>> import clr
>>> clr.AddReferenceToFileAndPath('My_Library.dll')
>>> from My_Library.My_Namespace import My_App
>>> App = My_App()
>>>
>>> from System import Array, Byte      
>>> var = clr.Reference[Array[Byte]]() # Create type StrongBox[Array[Byte]]"
>>>
>>> clr.Reference[Array[Byte]]
<type 'StrongBox[Array[Byte]]'>
>>>
>>> App.My_Function(var)
>>>
True
>>> var
<System.Byte[] object at 0x000000000000002B [System.Byte[]]>
>>>
>>> printable_var = System.BitConverter.ToString(var)
namespace My\u Library.My\u namespace
{
/// 
公共类My_应用程序:OSI_层
{
公共bool My_函数(输出字节[]数据输出)
{
//用字符串填充数据
返回(发送(数据输出));
}
//等等。。。
}
}
//////////////////////////
//
//铁蟒
//
//来自IronPython I。。。
>>>
>>>导入clr
>>>clr.addReferenceOfileandPath('My_Library.dll'))
>>>从My_Library.My_命名空间导入My_应用程序
>>>App=My_App()
>>>
>>>从系统导入数组,字节
>>>var=clr.Reference[Array[Byte]()#创建类型StrongBox[Array[Byte]]
>>>
>>>clr.Reference[数组[字节]]
>>>
>>>应用程序My_函数(var)
>>>
真的
>>>变量
>>>
>>>可打印_var=System.BitConverter.ToString(var)
回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:应为数组[Byte],获得了StrongBox[Array[Byte]]


您需要传入框的
值,而不是框本身

printable_var = System.BitConverter.ToString(var.Value)

您需要传入框的
值,而不是框本身

printable_var = System.BitConverter.ToString(var.Value)