• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# Reflection.CustomAttributeData类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中System.Reflection.CustomAttributeData的典型用法代码示例。如果您正苦于以下问题:C# CustomAttributeData类的具体用法?C# CustomAttributeData怎么用?C# CustomAttributeData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



CustomAttributeData类属于System.Reflection命名空间,在下文中一共展示了CustomAttributeData类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: ForeignKey

 public ForeignKey(CustomAttributeData data)
 {
     TableName = (string)data.ConstructorArguments[0].Value;
     ColumnName = (string)data.ConstructorArguments[1].Value;
     FullName = TableName + "." + ColumnName;
     Index = (int)data.ConstructorArguments[2].Value;
 }
开发者ID:agglerithm,项目名称:DataBus,代码行数:7,代码来源:ForeignKey.cs


示例2: CustomAttributeData_NamedArguments

 public static void CustomAttributeData_NamedArguments(CustomAttributeData customAttributeData)
 {
     String attributeTypeName = customAttributeData.AttributeTypeNameString();
     if (attributeTypeName == null)
         return;
     ReflectionEventSource.Log.CustomAttributeData_NamedArguments(attributeTypeName);
 }
开发者ID:tijoytom,项目名称:corert,代码行数:7,代码来源:ReflectionTrace.Public.Events.cs


示例3: GetCustomAttributeData

 private static string GetCustomAttributeData(CustomAttributeData cad, Type attrType, out Type typeValue, bool allowTypeAlso, bool noArgs, bool zeroArgsAllowed)
 {
     string assemblyQualifiedName = null;
     typeValue = null;
     if (!(cad.Constructor.ReflectedType == attrType))
     {
         return assemblyQualifiedName;
     }
     IList<CustomAttributeTypedArgument> constructorArguments = cad.ConstructorArguments;
     if ((constructorArguments.Count == 1) && !noArgs)
     {
         CustomAttributeTypedArgument argument = constructorArguments[0];
         assemblyQualifiedName = argument.Value as string;
         if (((assemblyQualifiedName == null) && allowTypeAlso) && (argument.ArgumentType == typeof(Type)))
         {
             typeValue = argument.Value as Type;
             assemblyQualifiedName = typeValue.AssemblyQualifiedName;
         }
         if (assemblyQualifiedName == null)
         {
             throw new ArgumentException(System.Xaml.SR.Get("ParserAttributeArgsLow", new object[] { attrType.Name }));
         }
         return assemblyQualifiedName;
     }
     if (constructorArguments.Count != 0)
     {
         throw new ArgumentException(System.Xaml.SR.Get("ParserAttributeArgsHigh", new object[] { attrType.Name }));
     }
     if (!noArgs && !zeroArgsAllowed)
     {
         throw new ArgumentException(System.Xaml.SR.Get("ParserAttributeArgsLow", new object[] { attrType.Name }));
     }
     return string.Empty;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:34,代码来源:ReflectionHelper.cs


示例4: Convert

        public Dictionary<string, object> Convert(string propertyName, CustomAttributeData attr)
        {
            var validations = new Dictionary<string, object>();
            var length = GetConstructorArgumentValue(attr, 0);

            return SetMinLengthAAValidation(propertyName, attr, length);
        }
开发者ID:wald-tq,项目名称:aa-validation-from-server,代码行数:7,代码来源:MinLengthConverter.cs


示例5: Convert

        public Dictionary<string, object> Convert(string propertyName, CustomAttributeData attr)
        {
            var validations = new Dictionary<string, object>();

            var minimum = GetConstructorArgumentValue(attr, 0);
            var maximum = GetConstructorArgumentValue(attr, 1);

            if (!string.IsNullOrWhiteSpace(minimum) && !string.IsNullOrWhiteSpace(maximum))
            {
                validations.Add("min", minimum);

                var displayName = base.GetNamedArgumentValue(propertyName, attr, DataAnnotationConstants.Display);
                if (!string.IsNullOrWhiteSpace(displayName))
                {
                    var msg = GetErrorMessage(propertyName, attr);
                    if (msg != null)
                    {
                        validations.Add("min-msg", msg);
                        validations.Add("max-msg", msg);

                    }
                    validations.Add("max", maximum);
                }
            }
            return validations;
        }
开发者ID:wald-tq,项目名称:aa-validation-from-server,代码行数:26,代码来源:RangeConverter.cs


示例6: GetCustomAttributes

        public static IList<CustomAttributeData> GetCustomAttributes(MemberInfo target)
        {
            if (target == null)
                throw new ArgumentNullException("target");

            IList<CustomAttributeData> cad = GetCustomAttributes(target.Module, target.MetadataToken);

            int pcaCount = 0;
            Attribute[] a = null;
            if (target is RuntimeType)
                a = PseudoCustomAttribute.GetCustomAttributes((RuntimeType)target, typeof(object), false, out pcaCount);
            else if (target is RuntimeMethodInfo)
                a = PseudoCustomAttribute.GetCustomAttributes((RuntimeMethodInfo)target, typeof(object), false, out pcaCount);
            else if (target is RuntimeFieldInfo)
                a = PseudoCustomAttribute.GetCustomAttributes((RuntimeFieldInfo)target, typeof(object), out pcaCount);

            if (pcaCount == 0)
                return cad;

            CustomAttributeData[] pca = new CustomAttributeData[cad.Count + pcaCount];
            cad.CopyTo(pca, pcaCount);
            for (int i = 0; i < pcaCount; i++)
            {
                if (PseudoCustomAttribute.IsSecurityAttribute(a[i].GetType()))
                    continue;

                pca[i] = new CustomAttributeData(a[i]);
            }

            return Array.AsReadOnly(pca);
        }
开发者ID:gbarnett,项目名称:shared-source-cli-2.0,代码行数:31,代码来源:customattribute.cs


示例7: FormatErrorMessage

        public string FormatErrorMessage(string propertyName, CustomAttributeData attr)
        {
            try
            {
                var message = ErrorMessages[attr.AttributeType.Name];

                var arguments = new List<object>();
                arguments.Add(propertyName);
                if(attr.AttributeType.Name == "StringLengthAttribute")
                {
                    arguments.Add(attr.NamedArguments.Where(x => x.MemberName == "MinimumLength").Select(x => x.TypedValue.Value).First());
                }
                arguments.AddRange(attr.ConstructorArguments.Select(x => x.Value).Cast<object>());

                return String.Format(message, arguments.ToArray());
            }
            catch (KeyNotFoundException)
            {
                try
                {
                    return String.Format(ErrorMessages["Default"], propertyName);
                }
                catch (KeyNotFoundException)
                {
                    return String.Format("{0} incorrect", propertyName);
                }
            }
        }
开发者ID:wald-tq,项目名称:aa-validation-from-server,代码行数:28,代码来源:AttributeErrorMessageFormatter.cs


示例8: GetCommonAttribute

        public CommonAttribute GetCommonAttribute(CustomAttributeData customAttributeData)
        {
            var positionalArguments = customAttributeData.ConstructorArguments.Select(GetCommonPositionalArgument);
              var namedArguments = customAttributeData.NamedArguments.AssertNotNull().Select(GetCommonNamedArgument);

              return new CommonAttribute(GetCommonType(customAttributeData.Constructor.DeclaringType), positionalArguments, namedArguments);
        }
开发者ID:igor-toporet,项目名称:TestFx,代码行数:7,代码来源:IntrospectionUtility.cs


示例9: CreateAttribute

        /// <summary>
        /// This methods creates an attribute instance from the attribute data 
        /// information
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private static Attribute CreateAttribute(CustomAttributeData data)
        {
            var arguments = from arg in data.ConstructorArguments
                            select arg.Value;

            var attribute = data.Constructor.Invoke(arguments.ToArray()) as Attribute;

            if (data.NamedArguments != null)
            {
                foreach (var namedArgument in data.NamedArguments)
                {
                    var propertyInfo = namedArgument.MemberInfo as PropertyInfo;
                    if (propertyInfo != null)
                    {
                        propertyInfo.SetValue(attribute, namedArgument.TypedValue.Value, null);
                    }
                    else
                    {
                        var fieldInfo = namedArgument.MemberInfo as FieldInfo;
                        if (fieldInfo != null)
                        {
                            fieldInfo.SetValue(attribute, namedArgument.TypedValue.Value);
                        }
                    }
                }
            }
            return attribute;
        }
开发者ID:ashokgelal,项目名称:NetSparkle,代码行数:34,代码来源:NetSparkleAssemblyReflectionAccessor.cs


示例10: Translate

 public static string Translate(Attribute a, CustomAttributeData d, Type context)
 {
     if (a is EcoElementAttribute)
         return TranslateEcoElementAttribute((EcoElementAttribute)a);
     else
         return d.ToString();
 }
开发者ID:lukyad,项目名称:Eco,代码行数:7,代码来源:CommonAttributeTranslator.cs


示例11: IsSamplePageByCategory

 public static bool IsSamplePageByCategory(this Page self, CustomAttributeData attr, string category)
 {
     if(attr == null)
     {
         throw new ArgumentNullException("attr");
     }
     return attr.NamedArguments.Any(arg => attr.AttributeType == typeof(SamplePageAttribute) && arg.MemberName == "Category" && arg.TypedValue.Value.ToString() == category);
 }       
开发者ID:ridomin,项目名称:waslibs,代码行数:8,代码来源:PageExtensions.cs


示例12: CustomAttributeInfo

		public CustomAttributeInfo(CustomAttributeData data) {
			attributeType = new QualifiedTypeNameInfo(data.Constructor.DeclaringType);
			constructorArguments = data.Constructor.GetParameters().OrderBy(p => p.Position).Select(p => new KeyValuePair<QualifiedTypeNameInfo, object>(new QualifiedTypeNameInfo(p.ParameterType), GetSimpleValue(data.ConstructorArguments[p.Position].Value))).ToArray();
			if (data.NamedArguments == null) {
				namedArguments = new KeyValuePair<TypeMemberInfo, object>[0];
			} else {
				namedArguments = data.NamedArguments.Select(argument => new KeyValuePair<TypeMemberInfo, object>(new TypeMemberInfo(argument.MemberInfo), GetSimpleValue(argument.TypedValue.Value))).ToArray();
			}
		}
开发者ID:avonwyss,项目名称:bsn-modulestore,代码行数:9,代码来源:CustomAttributeInfo.cs


示例13: Convert

 public Dictionary<string, object> Convert(string propertyName, CustomAttributeData attr)
 {
     var pattern = GetConstructorArgumentValue(attr, 0);
     if (!string.IsNullOrWhiteSpace(pattern))
     {
         return SetRegularExpressionAAValidation(propertyName, attr, pattern);
     }
     return new Dictionary<string, object>();
 }
开发者ID:wald-tq,项目名称:aa-validation-from-server,代码行数:9,代码来源:RegularExpressionConverter.cs


示例14: FileInstallStep

		public FileInstallStep(IManifest manifest, CustomAttributeData rawData) : base(manifest, rawData)
		{
			//[assembly: InstallFile(RepositoryPath = "/Root/Test/asdf.css", ResourcePath = "/res.asdf.css")]
			var repositoryPath = GetParameterValue<string>("RepositoryPath");
			var contentName = ContentManager.Path.GetFileName(repositoryPath);
			var containerPath = ContentManager.Path.GetParentPath(repositoryPath);

			ContainerPath = containerPath;
			ContentName = contentName;
			RawAttachments = "Binary:" + ResourceName;
		}
开发者ID:maxpavlov,项目名称:FlexNet,代码行数:11,代码来源:FileInstallStep.cs


示例15: GetRequiredSpan

        public static TagBuilder GetRequiredSpan(CustomAttributeData cs, MemberInfo member)
        {
            CustomAttributeNamedArgument namedArg = cs.NamedArguments.Where(p => p.MemberName == "ErrorMessage").First();
            string errorMsg = string.Empty;

            if (namedArg != null)
                errorMsg = namedArg.TypedValue.Value.ToString();
            else
                errorMsg = "Please enter " + member.Name.ToLower();

            return GetSpan(errorMsg, member.Name.ToLower(), "required");
        }
开发者ID:nitya1979,项目名称:KanbanBoard,代码行数:12,代码来源:NgHtmlHelper.cs


示例16: GetRawConstant

        internal static object GetRawConstant(CustomAttributeData attr)
        {
            foreach (CustomAttributeNamedArgument namedArgument in attr.NamedArguments)
            {
                if (namedArgument.MemberInfo.Name.Equals("Value"))
                    return namedArgument.TypedValue.Value;
            }

            // Return DBNull to indicate that no default value is available.
            // Not to be confused with a null return which indicates a null default value.
            return DBNull.Value;
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:12,代码来源:CustomConstantAttribute.cs


示例17: GetRawDateTimeConstant

        internal static DateTime GetRawDateTimeConstant(CustomAttributeData attr)
        {
            Contract.Requires(attr.Constructor.DeclaringType == typeof(DateTimeConstantAttribute));
            Contract.Requires(attr.ConstructorArguments.Count == 1);

            foreach (CustomAttributeNamedArgument namedArgument in attr.NamedArguments)
            {
                if (namedArgument.MemberInfo.Name.Equals("Value"))
                {
                    return new DateTime((long)namedArgument.TypedValue.Value);
                }
            }

            // Look at the ctor argument if the "Value" property was not explicitly defined.
            return new DateTime((long)attr.ConstructorArguments[0].Value);
        }
开发者ID:Rayislandstyle,项目名称:dotnet-coreclr,代码行数:16,代码来源:DateTimeConstantAttribute.cs


示例18: GetType

        public static TypeInfo GetType(Assembly asm, Func<CustomAttributeData, bool> match, out CustomAttributeData matchingAttributeData)
        {
            matchingAttributeData = null;
            foreach (var type in asm.DefinedTypes)
            {
                foreach (var attribute in type.CustomAttributes)
                {
                    if (match(attribute))
                    {
                        matchingAttributeData = attribute;
                        return type;
                    }
                }
            }

            return null;
        }
开发者ID:gabornemeth,项目名称:NUnit.XForms,代码行数:17,代码来源:TestHelper.cs


示例19: Convert

        public Dictionary<string, object> Convert(string propertyName, CustomAttributeData attr)
        {
            var validations = new Dictionary<string, object>();

            validations.Add("required", true);

            var displayName = GetNamedArgumentValue(propertyName, attr, DataAnnotationConstants.Display);
            if (!string.IsNullOrWhiteSpace(displayName))
            {
                var msg = GetErrorMessage(propertyName, attr);
                if (msg != null)
                {
                    validations.Add("required-msg", msg);
                }
            }
            return validations;
        }
开发者ID:wald-tq,项目名称:aa-validation-from-server,代码行数:17,代码来源:RequiredConverter.cs


示例20: TestFixture

        public TestFixture(TypeInfo testType, CustomAttributeData testFixtureAttribute)
        {
            Type = testType;
            Tests = new List<Test>();

            // Tesztesetek meghatározása
            foreach (var method in TestHelper.GetMethods(Type, attribute => attribute.AttributeType.FullName == TestAttributes.Test))
            {
                Tests.Add(new Test(this, method));
            }

            TestFixtureAttribute = testFixtureAttribute;
            Instance = TestHelper.CreateTestFixture(Type.AsType(), testFixtureAttribute);

            FindSetUpFixture(out _setUpFixture, out _setUpMethod);
            FindTearDownFixture(out _tearDownFixture, out _tearDownMethod);
        }
开发者ID:gabornemeth,项目名称:NUnit.XForms,代码行数:17,代码来源:TestFixture.cs



注:本文中的System.Reflection.CustomAttributeData类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Reflection.EventInfo类代码示例发布时间:2022-05-26
下一篇:
C# Reflection.ConstructorInfo类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap