programing

Knowntype 특성과 함께 사용되는 클래스에서 Obsolete 특성을 사용할 때 컴파일러 경고를 무시하는 방법

sourcetip 2021. 1. 16. 11:16
반응형

Knowntype 특성과 함께 사용되는 클래스에서 Obsolete 특성을 사용할 때 컴파일러 경고를 무시하는 방법


그래서 우리는 기존 클래스의 일부를 폐기하려고 노력하고 있으며 ObsoleteAttribute를 사용하여 더 이상 사용되지 않는 것으로 표시하기 시작하여 사용을 중지했습니다. Obsolete 특성으로 표시된 형식과 함께 KnownType 특성을 사용하면 컴파일러 경고가 발생한다는 사실이 예상됩니다. 그러나 우리 프로젝트에서는 경고를 오류로 취급하므로 경고를 무시하는 것은 선택 사항이 아닙니다. 이 경고를 억제하는 컴파일러 지시문이 있습니까?

다음 사용법은 컴파일러 경고를 발생시킵니다.

///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{

}

편집 : 컴파일러 지시문을 사용하여 오류를 무시하는 것을 이해하지만이 컴파일러 경고에는 숫자가 없습니다.


이를 사용하여 문제가되는 줄 바로 앞의 해당 경고를 비활성화합니다.

#pragma warning disable 612, 618

그런 다음 경고를 다시 활성화하십시오.

#pragma warning restore 612, 618

: 이상하게이 관련이 경고 거기 CS0612CS0618 - 하나입니다 [Obsolete]및 대한 다른 [Obsolete("Message")]. 그림을 이동...


코드에 #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 프로젝트에서 성공적으로 사용했습니다.


당신은 단지 사용할 수있는 #pragma적절한 경고 수를 나열?

#pragma 경고 (C # 참조)

편집하다

이것을 찾았지만 조금 늦었습니다 C #-사용자 지정 사용되지 않는 경고를 선택적으로 억제

참조 URL : https://stackoverflow.com/questions/5275072/how-to-ignore-compiler-warning-when-using-obsolete-attribute-on-a-class-used-wit

반응형