当前位置: 首页>>代码示例>>C#>>正文


C# ItemDefinition.GetCustomAttributes方法代码示例

本文整理汇总了C#中ItemDefinition.GetCustomAttributes方法的典型用法代码示例。如果您正苦于以下问题:C# ItemDefinition.GetCustomAttributes方法的具体用法?C# ItemDefinition.GetCustomAttributes怎么用?C# ItemDefinition.GetCustomAttributes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ItemDefinition的用法示例。


在下文中一共展示了ItemDefinition.GetCustomAttributes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetInterceptableProperties

		private IEnumerable<AttributedProperty> GetInterceptableProperties(ItemDefinition definition)
		{
			// Also include properties on base classes since properties are matched by reference and
			// and we want to intercept calls to properties on base classes with the same name
			for (Type t = definition.ItemType; t != null; t = t.BaseType)
			{
				foreach (var property in t.GetProperties())
				{
					if (!property.CanRead)
						continue;
					if (!property.GetGetMethod().IsVirtual)
						continue;
					if (!property.IsCompilerGenerated())
						continue;

					var attributes = definition.GetCustomAttributes<IInterceptableProperty>(property.Name);
					if (attributes.Any(a => a.PersistAs != PropertyPersistenceLocation.Detail && a.PersistAs != PropertyPersistenceLocation.DetailCollection))
						// some property is persisted as something other than detail or detail collection
						continue;
					if (!attributes.Any(a => a.PersistAs == PropertyPersistenceLocation.Detail || a.PersistAs == PropertyPersistenceLocation.DetailCollection))
						// no property is persisted as detail or detail collection
						continue;

					yield return new AttributedProperty { Property = property, Attribute = attributes.First() };
				}
			}
		}
开发者ID:navneetccna,项目名称:n2cms,代码行数:27,代码来源:InterceptingProxyFactory.cs


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