如何使用 SWIG 通过 SWIG 从 C++ 生成 C# 接口(interface)(或至少是 C# 可模拟基类)?
给定:
C++:
class IWidget
{
public:
virtual void Flob() = 0;
};
class Widget : public IWidget
{
public:
void Flob() {};
};
我想输出 C#:
public interface IWidget
{
void Flob();
}
public class Widget : IWidget
{...}
注意:解决方案不一定是接口(interface),但我确实需要能够使用模拟框架(例如 Moq 或 Rhino.Mocks)来模拟 C# Widget 类的基类。我的尝试只产生了没有公共(public)构造函数的生成的 C#。
最佳答案
您可以使用以下一项或多项获得您列出的输出:
csclassmodifiers
- 在纯虚方法上使用
%ignore
,使用 cscode 添加必要的方法声明。 csinterfaces 类型映射
csinterfaces_derived typemap
然而,这可能不是实现使类可模拟的目标的最简单方法。如果未使用 interface
,请考虑扩展您的帖子以清楚地确定实现此目的所需的 c#。
抱歉,我无法提供实际的代码答案,希望上面的内容能帮到你。
关于c# - 使用 SWIG 从 C++ 生成 C# 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25734636/