我的文档中有以下调用:
package pojos;
import com.google.auto.value.AutoValue;
import java.util.List;
import java.util.Map;
@AutoValue
public abstract class KeyValuesMapHolder {
public abstract List<KeyValue<String,String>> keyValues();
public abstract Map<Integer,String> mapping();
public static KeyValuesMapHolder create(List<KeyValue<String, String>> keyValues, Map<Integer, String> mapping) {
return new AutoValue_KeyValuesMapHolder(keyValues, mapping);
}
}
使用Roslyn我已成功找到第一个参数
var myContext = new FeatureWorkflowContext(FeatureWorkflowIds.CanvasConfig, activator);
现在我想将它在FeatureWorkflowIds.cs类中定义的实际值
FeatureWorkflowIds.CanvasConfig
我的目标是简单地找到&#34; Feature.WorkflowName.CanvasConfig&#34; 字符串。
是否有一种简单的方法可以完成此操作,或者我必须打开FeatureWorkflowIds类并搜索语法树?
答案 0 :(得分:0)
如果字段是这样的const:
public const string CanvasConfig = "Feature.WorkflowName.CanvasConfig";
使用SemanticModel并获得常量值会很容易。
但是,由于它不是const,只是静态只读,除了调查源声明之外,你确实没有其他选择。