当前位置: 首页 > news >正文

做网页局域网站点配置温州seo网站推广

做网页局域网站点配置,温州seo网站推广,wordpress可以做淘宝客,各大网站开发的区块链【pythonnet详解】—— Python 和 .NET 互操作的库_pythonnet 详细使用-CSDN博客 Python中动态调用C#的dll动态链接库中方法_python 如何调用c# dll-CSDN博客 需求&#xff1a;Python调用并传List<float>类型参数给.Net 起初&#xff1a;直接 # 创建一个Python浮点数…

【pythonnet详解】—— Python 和 .NET 互操作的库_pythonnet 详细使用-CSDN博客 

Python中动态调用C#的dll动态链接库中方法_python 如何调用c# dll-CSDN博客

需求:Python调用并传List<float>类型参数给.Net 

 起初:直接  # 创建一个Python浮点数列表 py_float_list = [0.23, 0.34, 0.45],但是报错

def callCS(model_url, methodName, argsType, argsVal, returnType, addition):# 找到c#程序集clr.FindAssembly(model_url)# 解析参数获取命名空间、类名和判断是否为静态方法的标识namespace, className, static = parseAddition(addition)# 解析参数argsParsedArr = parsePyArgs(argsVal, argsType)print(argsParsedArr)# 创建一个Python浮点数列表py_float_list = [0.23, 0.34, 0.45]listValue= py_float_list# 设置模块【命名空间】dll = clr.AddReference(namespace)## #从指定命名空间导入类# # from ClassLibrary1 import TestCsharp#动态导入模块module_1 = importlib.import_module(namespace)#获取命名下的指定类class_1 = getattr(module_1, className)#判断是否为静态方法if static == '1':method2 = getattr(class_1, methodName)# 调用静态方法并打印print(method2(argsParsedArr[0],listValue))else:# 实例化my_instance = class_1()# 获取非静态方法method1 = getattr(my_instance, methodName)# 调用非静态方法并打印print(method1(*argsParsedArr))

Python.Runtime.PythonException: 'list' value cannot be converted to System.Collections. Generic.List`1[System.Single],大概可以理解为python中list无法转化为.Net中List<T>[T为泛型]

然后,根据网上博客和AI工具推荐:

在Python中,你需要导入C# DLL,并使用pythonnet提供的机制来调用C#方法。但是,由于pythonnet不直接支持C#的泛型列表,你需要将Python列表转换为C#可以理解的数组或其他集合类型。

import clr  
# 加载C# DLL,假设DLL名为MyCSharpLibrary.dll,并且位于当前工作目录  
clr.AddReference('MyCSharpLibrary')  
from MyCSharpLibrary import MyCSharpClass  # 创建一个Python浮点数列表  
py_float_list = [1.23, 2.34, 3.45]  # 将Python列表转换为C#可以理解的数组(这里我们使用float数组)  
float_array = (clr.Convert(item, System.Single) for item in py_float_list)  
float_list = System.Array[System.Single](list(float_array))  # 调用C#方法,传递float数组(或转换为List<float>,如果需要)  
MyCSharpClass.ProcessFloatList(float_list)  # 注意:如果C#方法期望List<float>而不是数组,你可能需要创建一个List并填充它  
# float_list_csharp = System.Collections.Generic.List[System.Single]()  
# for item in py_float_list:  
#     float_list_csharp.Add(clr.Convert(item, System.Single))  
# MyCSharpClass.ProcessFloatList(float_list_csharp)---------------------------------------------------------------------------import clr  # 加载C# DLL  
clr.AddReference('MyCSharpLibrary')  
import MyCSharpLibrary  # 创建一个Python浮点数列表  
py_float_list = [1.23, 2.34, 3.45]  # 将Python列表转换为C# float数组  
float_array = System.Array[System.Single](py_float_list)  # 注意这里直接使用py_float_list可能不起作用  
# 正确的做法是使用列表推导式或循环来转换每个元素  
float_array = (System.Single(x) for x in py_float_list)  
float_array = System.Array[System.Single](list(float_array))  # 将生成器转换为列表,再转换为数组  # 调用C#方法,传递float数组  
MyCSharpLibrary.MyCSharpClass.ProcessFloatArray(float_array)

此时报错,无法导入System模块(.Net系统工作空间) ,然后在网上看到博客(试了无效):

看来官方文档,的确试可以导入System命名空间,是不是python、pythonnet、.net版本不匹配或者环境变量设置不正确(待查借助官方文档!!) 

pythonnet官方文档 :https://pythonnet.github.io/pythonnet/python.html

http://www.zhongyajixie.com/news/33101.html

相关文章:

  • 上海传媒公司总裁李闪闪安卓优化大师官方版
  • 台州建设银行官方网站app营销策略
  • 怎样做网站后台运营站长数据
  • 网站建设电脑端手机端怎样有效的做网上宣传
  • 一站式做网站哪家好怎样下载优化大师
  • 哈尔滨自媒体公司济南seo网站优化公司
  • wordpress+整站下载扬中网站制作
  • 计算机专业做网站的开题报告百度首页推荐关不掉吗
  • 远丰做网站怎么样免费crm
  • 做详情页上什么网站找素材保定百度首页优化
  • 潍坊网站建设电话中国国家培训网官网入口
  • 广州培训+网站开发青岛网站seo公司
  • 济南网站建设开发投放广告找什么平台
  • 网站百度搜索情况和反链接优化建议平台运营推广
  • 福州市交通建设集团网站apple日本网站
  • 网站建设基本流程详细说明百度权重5的网站能卖多少钱
  • 注册完域名怎么做网站网站优化建设
  • 贵阳网站建设-中国互联成都网站制作关键词推广排名
  • 六安网站建设招聘seo优化快速排名技术
  • 做网站友情链接都写什么搜索网站的软件
  • 市场推广的方法和规划厦门seo小谢
  • 网站怎么做关键词排名如何解决网站只收录首页的一些办法
  • 做网站点击率怎么收钱手机百度旧版本下载
  • 网站开发目前主要用什么技术留电话的广告网站
  • 池州网站建设怎么样搜索引擎营销的常见方式
  • 成都网站开发收费百度云在线登录
  • 青岛seo做的好的网站理发美发培训学校
  • 网站建设前台功能关键词搜索引擎工具爱站
  • 磁县网站设计公司百度游戏风云榜
  • 定制化网站开发的好处营销咨询公司经营范围