.net net互操作类层次结构问题

.net net互操作类层次结构问题,.net,matlab,types,.net,Matlab,Types,由于matlab是弱类型语言,而C#是强类型语言,因此它们的互操作性并不像我想要的那样自然,因此我遇到了一点小麻烦,希望我能在这里得到一些建议 在我的例子中,我想调用matlab中的一个.NET库。该.NET库有很多OO结构。我的意图是,我现在不想从C#library方面改变任何东西。我只是将相对汇编添加到matlab中 例如,在我的.net库中 class A { method1 //not static method } class B : A { ... } 在我的

由于matlab是弱类型语言,而C#是强类型语言,因此它们的互操作性并不像我想要的那样自然,因此我遇到了一点小麻烦,希望我能在这里得到一些建议

在我的例子中,我想调用matlab中的一个.NET库。该.NET库有很多OO结构。我的意图是,我现在不想从C#library方面改变任何东西。我只是将相对汇编添加到matlab中

例如,在我的.net库中

class A
{
     method1 //not static method
}

class B : A
{
     ...
}
在我的matlab代码中,我检索了一个类B的对象,例如B,然后我想调用这个对象的类A的method1。我的自然编码行为是调用:b.method1(val)

但是,Matlab会给我以下错误,这让我不高兴: 错误:找不到类B具有匹配签名的方法“method1”

我可能会发表一些关于这个问题的研究:

  • 我不在matlab端做任何OO编程,所有这些OO类只驻留在dll中。我也不想更改dll部分的任何内容

  • 我看到一些帖子,可以通过子类的类调用超类的方法:func@superclass(val)。然而,我认为这不适用于我的情况

  • 我在github上看到另一篇关于mongo matlab之间的驱动程序的帖子。我不会仔细查看它的细节,它可能会给我答案,但我希望在深入研究代码部分之前能得到一些建议


  • 谢谢

    检查是否所有内容都是公共的-类、函数、超类、超函数等。谢谢@Andrey,但是检查后,仍然不起作用。我目前的解决方案是从.NET端构建一个驱动程序。然后,我将原始的matlab变量传递到.NET接口中,以在.NET中构造预期的对象。