SWIG生成C#代码时如何为输出的cs文件添加命名空间
SWIG生成C#代码配置命名空间与自定义using引用方法
直接通过修改SWIG接口定义文件(.i)即可实现,不需要手动修改生成后的.cs文件,具体操作如下:
- 配置输出C#代码的命名空间:在接口文件中添加
%namespace指令,参数传入你需要的命名空间名称即可,所有生成的C#类都会自动归入该命名空间下,示例:
%namespace YourProject.Interop
- 配置全局生效的自定义using引用:使用
csimports类型映射,把你需要额外引入的命名空间写到映射块中,你需要的System.Text、System.IO就可以通过这个方式添加,示例:
%typemap(csimports) SWIGTYPE %{ using System; using System.Text; using System.IO; %}
上述配置会对所有SWIG生成的C#类生效,如果只需要给指定类添加特定引用,把SWIGTYPE替换为对应类名即可。
注意:上述两类配置指令必须写在接口文件中
%include待封装C++头文件的语句之前,否则配置不会生效。
完整接口文件示例
%module NativeLibWrap // 配置输出命名空间 %namespace MyApp.NativeBridge // 配置全局using引用 %typemap(csimports) SWIGTYPE %{ using System; using System.Text; using System.IO; %} // 引入待封装的C++头文件 %include "native_lib.h"
按上述配置执行SWIG生成命令后,输出的.cs文件顶部会自动带上你需要的两行using声明,所有类型都包裹在指定命名空间内。
内容的提问来源于stack exchange,提问作者zui_jiu_zhou
相关产品推荐
相关产品推荐

