SyntaxValueProvider.ForAttributeWithMetadataName<T> 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
IncrementalValuesProvider<TValues>如果节点上有INamedTypeSymbol一个属性,该节点绑定到具有与提供的 fullyQualifiedMetadataName
相同的完全限定元数据的 ,则创建一个 ,该节点可针对所有 SyntaxNode提供转换。
fullyQualifiedMetadataName
应该是特性的完全限定的元数据名称,包括 Attribute
后缀。 例如 "System.CLSCompliantAttribute"
,对于 CLSCompliantAttribute。
public Microsoft.CodeAnalysis.IncrementalValuesProvider<T> ForAttributeWithMetadataName<T> (string fullyQualifiedMetadataName, Func<Microsoft.CodeAnalysis.SyntaxNode,System.Threading.CancellationToken,bool> predicate, Func<Microsoft.CodeAnalysis.GeneratorAttributeSyntaxContext,System.Threading.CancellationToken,T> transform);
member this.ForAttributeWithMetadataName : string * Func<Microsoft.CodeAnalysis.SyntaxNode, System.Threading.CancellationToken, bool> * Func<Microsoft.CodeAnalysis.GeneratorAttributeSyntaxContext, System.Threading.CancellationToken, 'T> -> Microsoft.CodeAnalysis.IncrementalValuesProvider<'T>
Public Function ForAttributeWithMetadataName(Of T) (fullyQualifiedMetadataName As String, predicate As Func(Of SyntaxNode, CancellationToken, Boolean), transform As Func(Of GeneratorAttributeSyntaxContext, CancellationToken, T)) As IncrementalValuesProvider(Of T)
类型参数
- T
参数
- fullyQualifiedMetadataName
- String
- predicate
- Func<SyntaxNode,CancellationToken,Boolean>
一个函数,用于确定是否应转换给定 SyntaxNode 属性目标 (TargetNode) 。 未传递此谓词的节点根本不会查看其属性。
- transform
- Func<GeneratorAttributeSyntaxContext,CancellationToken,T>
执行转换的函数。 这只会传递的节点返回 true
, predicate
并且具有匹配 AttributeData 的,其 AttributeClass 完全限定的元数据名称与 fullyQualifiedMetadataName
相同。