本文整理汇总了C#中ICustomAttributeProvider.GetAttribute方法的典型用法代码示例。如果您正苦于以下问题:C# ICustomAttributeProvider.GetAttribute方法的具体用法?C# ICustomAttributeProvider.GetAttribute怎么用?C# ICustomAttributeProvider.GetAttribute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICustomAttributeProvider
的用法示例。
在下文中一共展示了ICustomAttributeProvider.GetAttribute方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ToCppTypename
/// <summary>
/// Translates the type.
/// </summary>
/// <param name="fieldInfo">The field info.</param>
/// <param name="fieldType">Type of the field.</param>
/// <returns></returns>
public static string ToCppTypename(ICustomAttributeProvider fieldInfo, Type fieldType)
{
string translatedType;
if (fieldType == typeof(string)) {
return fieldInfo.HasAttribute<MarshalAsAttribute>() &&
fieldInfo.GetAttribute<MarshalAsAttribute>(false).Value == UnmanagedType.LPStr
? "_string"
: "_wstring";
}
if (TranslatedTypes.TryGetValue(fieldType, out translatedType))
return translatedType;
if (fieldType.IsByRef) {
string pointedTypename = fieldType.FullName.Substring(0, fieldType.FullName.Length - 1);
Type pointedType = fieldType.Assembly.GetType(pointedTypename);
return ToCppTypename(fieldInfo, pointedType) + "*";
}
if (fieldType.IsArray) {
return ToCppTypename(fieldInfo, fieldType.GetElementType()) + "*";
}
if (fieldType.IsPointer) {
string pointedTypename = fieldType.FullName.Substring(0, fieldType.FullName.Length - 1);
Type pointedType = fieldType.Assembly.GetType(pointedTypename);
return ToCppTypename(fieldInfo, pointedType) + "*";
}
if (fieldType.IsEnum)
return GetCppEnumName(fieldType);
if (fieldType.HasICppInterface())
return ToCppTypename(fieldInfo, typeof(Handle));
return GetCppTypename(fieldType);
}
示例2: getAllowableValues
private static AllowableValues getAllowableValues(ICustomAttributeProvider propertyInfo)
{
var allowableValues = propertyInfo.GetAttribute<AllowableValuesAttribute>();
if(allowableValues == null)
return null;
return new AllowableValues {valueType = "LIST", values = allowableValues.AllowableValues};
}