Experimental
Вызов помеченного API даёт
предупреждение, а не строку в
консоль. Идентификатор читают
через ExperimentalAttribute.DiagnosticId.
Нужен
System.Diagnostics.CodeAnalysis.
Синтаксис
[Experimental("ABCDE")]
class BetaFeature
{
}
Пример
Давайте прочитать
DiagnosticId у типа:
using System;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
[Experimental("ABCDE")]
class BetaFeature
{
}
class Program
{
static void Main()
{
ExperimentalAttribute item = typeof(BetaFeature)
.GetCustomAttribute<ExperimentalAttribute>();
string res = item.DiagnosticId;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"ABCDE"
Пример
Давайте проверить наличие атрибута на типе:
using System;
using System.Diagnostics.CodeAnalysis;
[Experimental("ABCDE")]
class BetaFeature
{
}
class Program
{
static void Main()
{
bool res = typeof(BetaFeature).IsDefined(typeof(ExperimentalAttribute), false);
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте пометить метод и прочитать идентификатор:
using System;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
class Worker
{
[Experimental("ABCDE")]
public void Run()
{
}
}
class Program
{
static void Main()
{
MethodInfo method = typeof(Worker).GetMethod("Run");
ExperimentalAttribute item = method
.GetCustomAttribute<ExperimentalAttribute>();
string res = item.DiagnosticId;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"ABCDE"
Смотрите также
-
Obsolete,
устаревшее API -
Conditional,
условный вызов -
AttributeUsage,
цели атрибута -
Атрибут,
обзор