public void RegisterProperties()
{
lock (_lockObject)
{
if (IsRegisterPropertiesCalled)
{
return;
}
var catelProperties = new List<PropertyData>();
catelProperties.AddRange(FindCatelFields(Type));
catelProperties.AddRange(FindCatelProperties(Type));
foreach (var propertyData in catelProperties)
{
_catelProperties[propertyData.Name] = propertyData;
}
var nonCatelProperties = FindNonCatelProperties(Type);
foreach (var property in nonCatelProperties)
{
_nonCatelProperties[property.Name] = new CachedPropertyInfo(property);
}
IsRegisterPropertiesCalled = true;
}
}