我正在尝试使用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引用枚举?
答案 0 :(得分:7)
我认为你不能解决这个问题。与您尝试使用的C#组件的作者联系,并说服他们修复他们的代码。
顺便说一下,这是CLSCompliant(true)
属性背后的主要原因,如果您正在编写API或其他语言,您应该始终设置其他语言的概率很高。它会标记此问题,以便原作者了解并正确修复。
答案 1 :(得分:4)
有几种方法可以解决这个问题,但两者都不是一个好的选择。
一个是创建一个C#项目并完全包装该类,将不明确的成员更改为明确的成员。根据课程的大小,可能会有很多工作,但显然你只需要包装你需要的成员。
另一种方法是使用反射,这不像包装那么多,但与作者首先正确编写代码相比,仍然是毫无意义的工作。