Python 字典将发送到 c# dll,动态与静态类型问题

Python dictionary will be sent to c# dll, dynamic vs. static types issue

我需要运行一段python代码,这段代码会生成一个嵌套字典{"str","list"},里面的list有很多类型比如int或布尔

我需要在 C# 代码中使用这个字典,我需要这个字典与 python.

中的字典完全一样

我做到了

        try:
            #create a dictionary of all tests stats
            resultStat = ResDesc.__dict__

            #convert this dictionary from python type to c# generic type so 
            SQSManagedUI.dll can handle the information contained inside

            resultStatDict = Dictionary[String,String]()

            #unify the key value pairs to be all strings, even the Boolean 
            values will be converted #to 'Str', so DLLs will be able to 
            process it. 

            for k,v in resultStat.items():
                if isinstance(v,str):
                    resultStatDict[k]=v
                else:
                    v= str(v)
                    resultStatDict[k]=v

        #send the dictionary to SQSmanagedUI dll for proces sing as 
        Dict[string:string]

        resultWindow=SQSManagedUI.Dialogs.ShowResultManager(resultStatDict)
    except:
        traceback.print_exc()

但这给了我一个包含 string/string 对的字典,我该怎么做才能将我的类型保留在列表中 (bool, str, int)。

我对 C# 中的反射了解一点,我在我的 python 代码中使用 Iron Python。

哪位大侠能帮帮忙,先谢谢了。

要使用 python 操作,您可以利用 C# 对 dynamic 类型的支持。

The dynamic type simplifies access to COM APIs such as the Office Automation APIs, and also to dynamic APIs such as IronPython libraries, and to the HTML Document Object Model (DOM).