Roslyn检查属性的类型

时间:2017-07-28 19:27:08

标签: c# linq roslyn

我试图找出在Roslyn中比较属性数据的正确方法。

if($form->isSubmitted() && $form->isValid){
    //Do whatever work you need to in here like uploading the image 
    // before the forward
    return $this->forward('@Bundle:action', array(
       'request' => $request));
}

如何检查属性是否为所需类型?

1 个答案:

答案 0 :(得分:6)

AttributeData.AttributeClass为您提供属性的Roslyn符号。但是你有一个你想要比较的CLR运行时类型。您可以只比较类型名称等,以查看它们是否可能是同一类型,或者获取MyAttributeType的Roslyn类型符号,这更正确。这通常是通过

var desiredSymbol = sematicModel.Compilation.GetTypeByMetadataName(typeof(MyAttributeType).FullName)