本文整理汇总了C#中Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateProperty方法的典型用法代码示例。如果您正苦于以下问题:C# ClassEmitter.CreateProperty方法的具体用法?C# ClassEmitter.CreateProperty怎么用?C# ClassEmitter.CreateProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Castle.DynamicProxy.Generators.Emitters.ClassEmitter
的用法示例。
在下文中一共展示了ClassEmitter.CreateProperty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CollectProperties
private PropertyToGenerate[] CollectProperties(
ArrayList methodList, Type type, bool onlyVirtuals, ClassEmitter emitter)
{
ArrayList toGenerateList = new ArrayList();
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
PropertyInfo[] properties = type.GetProperties(flags);
foreach(PropertyInfo propInfo in properties)
{
bool generateReadable, generateWritable;
generateWritable = generateReadable = false;
MethodInfo setMethod, getMethod;
setMethod = getMethod = null;
if (propInfo.CanRead)
{
getMethod = propInfo.GetGetMethod(true);
if (IsAccessible(getMethod) && AcceptMethod(getMethod, onlyVirtuals))
{
methodList.Add(getMethod);
generateReadable = true;
}
}
if (propInfo.CanWrite)
{
setMethod = propInfo.GetSetMethod(true);
if (IsAccessible(setMethod) && AcceptMethod(setMethod, onlyVirtuals))
{
methodList.Add(setMethod);
generateWritable = true;
}
}
if (!generateWritable && !generateReadable)
{
continue;
}
PropertyAttributes atts = ObtainPropertyAttributes(propInfo);
PropertyEmitter propEmitter = emitter.CreateProperty(propInfo.Name, atts, propInfo.PropertyType);
PropertyToGenerate propToGenerate =
new PropertyToGenerate(generateReadable, generateWritable, propEmitter, getMethod, setMethod);
toGenerateList.Add(propToGenerate);
}
return (PropertyToGenerate[]) toGenerateList.ToArray(typeof(PropertyToGenerate));
}