vb.net中不明确的类成员

时间:2008-10-15 20:55:38

标签: vb.net visual-studio

我正在尝试使用vb.net中的C#程序集中的类。该类具有不明确的成员,因为vb.net不区分大小写。这个课是这样的:

public class Foo {

  public enum FORMAT {ONE, TWO, THREE};

  public FORMAT Format {
    get {...}
    set {...}
   }
}

我尝试访问枚举:Foo.FORMAT.ONE

这是不可能的,因为还有一个名为'format'的属性。

我无法更改C#程序集。我怎样才能绕过这个并从vb.net引用枚举?

2 个答案:

答案 0 :(得分:7)

我认为你不能解决这个问题。与您尝试使用的C#组件的作者联系,并说服他们修复他们的代码。

顺便说一下,这是CLSCompliant(true)属性背后的主要原因,如果您正在编写API或其他语言,您应该始终设置其他语言的概率很高。它会标记此问题,以便原作者了解并正确修复。

答案 1 :(得分:4)

有几种方法可以解决这个问题,但两者都不是一个好的选择。

一个是创建一个C#项目并完全包装该类,将不明确的成员更改为明确的成员。根据课程的大小,可能会有很多工作,但显然你只需要包装你需要的成员。

另一种方法是使用反射,这不像包装那么多,但与作者首先正确编写代码相比,仍然是毫无意义的工作。