in src/NMS.AMQP/Util/PropertyUtil.cs [739:779]
private Dictionary<string, ReflectedInteceptor> CreateReflectionInterceptors(T instance)
{
Dictionary<string, PropertyInfo> objProperties = PropertyUtil.GetPropertiesForClass(instance);
Dictionary<string, ReflectedInteceptor> result = new Dictionary<string, ReflectedInteceptor>();
if (Tracer.IsDebugEnabled)
{
List<string> stringPropertyNames = new List<string>(objProperties.Keys.Count);
foreach (string pName in objProperties.Keys)
{
string propertyName = this.PropertyPrefix + pName;
stringPropertyNames.Add(propertyName);
}
Tracer.DebugFormat("Creating reflection interceptors for Class instance {0}, Generating Properties = {1}", instance.GetType().Name, PropertyUtil.ToString(stringPropertyNames));
}
foreach (string key in objProperties.Keys)
{
string propertyName = this.PropertyPrefix + key;
PropertyInfo info = objProperties[key];
if (!CanReflect(info)) continue;
//MethodInfo propGetter = info.GetGetMethod();
Interceptor? reflectedInterceptor = CreateReflectedInterceptor(info);
if (reflectedInterceptor != null)
{
Interceptor i = (Interceptor)reflectedInterceptor;
ReflectedInteceptor ri = new ReflectedInteceptor()
{
ReflectedProperty = info,
BaseInterceptor = i,
};
result.Add(propertyName, ri);
}
}
return result;
}