Jac*_*hea 53 .net c# attributes compiler-warnings
因此,我们尝试弃用一些现有的类,并开始使用ObsoleteAttribute将它们标记为过时,以便它们将停止使用.使用具有使用Obsolete属性标记的类型的KnownType属性并导致编译器警告的事实是预期的.但是,在我们的项目中,我们将警告视为错误,因此忽略警告不是一种选择.是否有编译器指令来抑制此警告?
以下用法会导致编译器警告:
///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{
}
编辑:我理解使用编译器指令来忽略错误,但是这个编译器警告没有数字.
Jor*_*dão 112
使用此选项可以在违规行之前禁用相应的警告:
#pragma warning disable 612, 618
然后重新启用警告:
#pragma warning restore 612, 618
奇怪的是,有2个警告与此相关:CS0612和CS0618 - 一个用于[Obsolete],另一个用于[Obsolete("Message")].去搞清楚...
Met*_*ght 57
如果你想避免使用#prgramas 代码,请尝试这样:
在你的csproj文件中,找到合适的PropertyGroup元素并添加  
<WarningsNotAsErrors>612,618</WarningsNotAsErrors>
这是我的一个项目文件的片段:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE;DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <WarningsNotAsErrors>612,618</WarningsNotAsErrors>
    <NoWarn>
    </NoWarn>
    <WarningsAsErrors>
    </WarningsAsErrors>
</PropertyGroup>
我已经成功地使用了VS2010,VS2012和VS2013项目.
| 归档时间: | 
 | 
| 查看次数: | 38881 次 | 
| 最近记录: |