本文整理汇总了C#中ITypeSymbol.GetAttributeValue方法的典型用法代码示例。如果您正苦于以下问题:C# ITypeSymbol.GetAttributeValue方法的具体用法?C# ITypeSymbol.GetAttributeValue怎么用?C# ITypeSymbol.GetAttributeValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITypeSymbol
的用法示例。
在下文中一共展示了ITypeSymbol.GetAttributeValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Type
public JsExpression Type(ITypeSymbol type, bool forceUnconstructedScope = false)
{
if (type is IArrayTypeSymbol)
{
var arrayType = (IArrayTypeSymbol)type;
var elementType = arrayType.ElementType;
/*
if (elementType is TypeParameterSymbol && forceUnconstructedScope)
{
var tp = (TypeParameterSymbol)elementType;
elementType = Context.Instance.ObjectType;
}
*/
return MakeArrayType(elementType);
}
var explicitName = type.GetAttributeValue<string>(Context.Instance.JsAttributeType, "Name");
if (explicitName != null)
return Js.Reference(explicitName);
var typeParameter = type as ITypeParameterSymbol;
if (typeParameter != null && typeParameter.DeclaringType != null)
{
return Js.Reference(type.Name);
// return Js.This().Member(SpecialNames.TypeArgs).Index(Js.Primitive(type.Name));
}
var namedTypeSymbol = type as INamedTypeSymbol;
if (namedTypeSymbol != null)
{
if (namedTypeSymbol.HasOrIsEnclosedInGenericParameters() && !forceUnconstructedScope && !namedTypeSymbol.IsUnboundGenericType)
{
return MakeGenericType(namedTypeSymbol);
}
else if (type.ContainingType != null && type.ContainingType.GetAttributeValue<string>(Context.Instance.JsAttributeType, "Name") != null)
{
var result = Type(type.ContainingType).Member(type.Name.MaskSpecialCharacters());
return result;
}
else
{
var name = type.GetFullName().Replace('`', '$');
JsExpression result = Js.Reference(name);
return result;
}
}
var typeName = type.GetTypeName();
return new JsVariableReferenceExpression(typeName);
}