我有一个使用的外部程序集,无论出于什么原因,它都不指定CLS法规。因此,这会导致我的许多代码被标记为非cls兼容的。我遇到的问题如下:
public abstract class SomeClass
{
//Compiler Error CS3011
[CLSCompliant(false)]
public abstract object SomeMethod(ExternalNonCompliantType arg);
}
public abstract class SomeClass
{
//Argument type 'External.ExternalNonCompliantType' is not CLS-compliant
public abstract object SomeMethod(ExternalNonCompliantType arg);
}CS3011:
类成员不能既抽象又不符合公共语言规范(CLS)。CLS指定实现所有类成员。
我真的不知道该怎么做.
发布于 2012-07-19 10:07:53
[CLSComplaint(false)]吗?如果您的程序集也不兼容,那么您应该可以使用这类代码。您还可以尝试将一个类标记为不兼容的。我一直都在标记整个集会。
如果这只是您的代码,并且您没有将它作为库分发,那么它不应该是一个问题,您也不需要过多地担心CLS的遵从性。
一个例外是,如果您在内部编写一些您希望能够在多种其他CLR语言中重用的东西,如F#、vb.net、ironpython、boo、M、scala等,情况可能并非如此;大多数应用程序就是这样的应用程序。
https://stackoverflow.com/questions/11558063
复制相似问题