Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不会显示.net对象的属性和方法_C#_.net_Matlab_.net Assembly_Matlab Deployment - Fatal编程技术网

C# 不会显示.net对象的属性和方法

C# 不会显示.net对象的属性和方法,c#,.net,matlab,.net-assembly,matlab-deployment,C#,.net,Matlab,.net Assembly,Matlab Deployment,我有.NET汇编文件,我需要它在MATLAB中工作。(库是用C#创建的,我有相应的源代码) 接下来,我发现以下命令将在MATLAB中加载程序集,并使其类可在“MATLAB”中使用。但它似乎不起作用。我用这个来加载文件: color = NET.addAssembly('c:\path\to\file\EvolutionMapsClassLib.dll'); 它加载得很好,我在工作区中看到一个1x1.NET程序集对象。。当我键入color时,我得到以下结果: color =

我有.NET汇编文件,我需要它在MATLAB中工作。(库是用C#创建的,我有相应的源代码)

接下来,我发现以下命令将在MATLAB中加载程序集,并使其类可在“MATLAB”中使用。但它似乎不起作用。我用这个来加载文件:

  color = NET.addAssembly('c:\path\to\file\EvolutionMapsClassLib.dll');
它加载得很好,我在工作区中看到一个1x1.NET程序集对象。。当我键入
color
时,我得到以下结果:

  color = 

    NET.Assembly handle
    Package: NET

  Properties for class NET.Assembly:

      AssemblyHandle
      Classes
      Structures
      Enums
      GenericTypes
      Interfaces
      Delegates
显然,它已正确加载,此外,键入
color.Classes
可提供以下内容:

  >> color.Classes

  ans = 

      'EvolutionMaps.EvolutionMap'
      'EvolutionMaps.EvolutionMap+EstimationResults'
      'EvolutionMaps.PrincipalDirectionEvolutionMap'
      'EvolutionMaps.CharacterDimensionsEstemator'
      'EvolutionMaps.MapBlob'
      'EvolutionMaps.MapsMetric'
      'EvolutionMaps.MapsMetric+MapMinimalComparable'
      'EvolutionMaps.MapsL2Distance'
      'EvolutionMaps.DiagonalEvolutionMap'
      'EvolutionMaps.EvolutionMapGenerator'
      'EvolutionMaps.HeightEvolutionMap'
      'EvolutionMaps.FullnessEvolutionMap'
      'EvolutionMaps.YvalEvolutionMap'
      'EvolutionMaps.ImageExtractor'
      'EvolutionMaps.HorisontalProjectionDistance'
      'EvolutionMaps.StrokeWidthEvolutionMap'
      'EvolutionMaps.ConnectedComponentsFinder'
      'EvolutionMaps.ColorMap'
      'EvolutionMaps.ColorMap+GrayColorMap'
      'EvolutionMaps.ColorMap+JetColorMap'
      'EvolutionMaps.TransitionAvgEvolutionMap'
      'EvolutionMaps.PrincipalProjectionEvolutionMap'
      'EvolutionMaps.ConnectedComponent'
      'EvolutionMaps.WidthEvolutionMap'
这似乎工作得很好,但根据在线帮助,为了与这些类交互,我需要知道方法和属性

这就是我遇到问题的地方,因为
属性
方法似乎都不起作用。
我尝试了每一个变体来获取属性或方法列表,但我一直遇到以下错误:

  >> properties color.EvolutionMaps.ColorMap

  No properties for class color.EvolutionMaps.ColorMap or no class color.EvolutionMaps.ColorMap.

  >> properties color.Classes.EvolutionMaps.ColorMap

  No properties for class color.Classes.EvolutionMaps.ColorMap or no class color.Classes.EvolutionMaps.ColorMap.

  >> properties Classes.EvolutionMaps.ColorMap

  No properties for class Classes.EvolutionMaps.ColorMap or no class Classes.EvolutionMaps.ColorMap.
  >> methods color

  No methods for class color or no class color.
方法的情况相同,我不断遇到以下错误:

  >> properties color.EvolutionMaps.ColorMap

  No properties for class color.EvolutionMaps.ColorMap or no class color.EvolutionMaps.ColorMap.

  >> properties color.Classes.EvolutionMaps.ColorMap

  No properties for class color.Classes.EvolutionMaps.ColorMap or no class color.Classes.EvolutionMaps.ColorMap.

  >> properties Classes.EvolutionMaps.ColorMap

  No properties for class Classes.EvolutionMaps.ColorMap or no class Classes.EvolutionMaps.ColorMap.
  >> methods color

  No methods for class color or no class color.
当我打开这个程序集的源代码时,它显示了所有的方法和属性

那么,如何才能使.NET程序集在不显示属性或方法的情况下工作呢

谢谢

该函数加载.NET程序集并使其在MATLAB中可用。返回的变量实际上是一个“元对象”,包含关于类、枚举、结构等的信息。。载于大会

如果要处理库公开的任何类,必须像往常一样实例化对象(或者直接调用静态函数(如果可用)。政府对此解释得很好

以以下C#类为例:

MyClass.cs 首先,我们将其编译成.NET程序集,然后在MATLAB中使用它:

> csc.exe /target:library /out:ClassLibraryTest.dll MyClass.cs
MATLAB 现在可以像往常一样检查类的属性和方法:

>> properties(c)
>> methods(c)
>> methodsview ClassLibraryTest.MyClass

在C代码中,属性是静态的还是非静态的?也许他们需要公开
;是吗?@JeppeStigNielsen在类中,所有变量都是私有的,但函数是公共的。如果你看到代码会有帮助吗?我不能上传到这里,因为它不是我的,但如果你想看的话,我可以发电子邮件给你。谢谢你的回复,阿姆罗,我希望你能在这里回复。我试图按照您的指示,并尝试用
c=EvolutionMaps.ConnectedComponent()实例化一个类的实例但是我得到了一个错误
没有找到具有匹配签名的构造函数“EvolutionMaps.ConnectedComponent”。
如果查看代码会有帮助吗?我可以发电子邮件给你。感谢您对我的问题的输入。发布一个methods EvolutionMaps.ConnectedComponent-full以查看构造函数的签名。构造函数是那些命名为类的方法。