我有一个C#项目,我想在matlab中使用我的项目的功能。 我添加了
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
befor我的项目中的每个类,并制作输出类型类库。 但是当我在matlab中使用dll时,
temp = NET.addAssembly('../../foo')
然后foo.Classes
,没有课!
我该怎么办?! PLZ帮帮我:)。
答案 0 :(得分:3)
有关上述评论的示例
要使用NET.addAssembly(...)
从.NET程序集中使用类,不需要使类COM可见但是类以及要访问的方法 ,必须公开。
.NET代码
namespace foo
{
public class SampleClass
{
// Constructor
public SampleClass() { }
// Static example
public static string StaticMethod() { return "Hello from static method."; }
// Instance example
public string InstanceMethod() { return "Hello from instance method."; }
}
}
来自Matlab的用法
% Loading the .NET assembly
NET.addAssembly('..\..\Foo.dll');
% Call of a static method
foo.SampleClass.StaticMethod()
% Call of an instance method
instance = foo.SampleClass();
instance.InstanceMethod();