本文整理汇总了C#中PropertyType.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# PropertyType.GetType方法的具体用法?C# PropertyType.GetType怎么用?C# PropertyType.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PropertyType
的用法示例。
在下文中一共展示了PropertyType.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Process
public void Process(IEnumerable<DocumentTypeMetadata> types)
{
var contentTypes = new List<IContentType>();
var dataTypeDefinitions = DataTypeService.GetAllDataTypeDefinitions().ToArray();
foreach (var type in types)
{
var ct = ContentTypeService.GetContentType(type.Alias) ?? new ContentType(-1);
ct.Name = type.Name;
ct.Alias = type.Alias;
ct.AllowedAsRoot = type.AllowAsRoot;
ct.Description = type.Description;
ct.Icon = type.Icon;
ct.Thumbnail = type.Thumbnail;
var properties = ct.PropertyTypes.ToArray();
var newProperties = type.Properties.Where(p => !properties.Any(x => x.Alias == p.Alias));
foreach (var property in newProperties)
{
var p = new PropertyType(dataTypeDefinitions.First(dtd => dtd.Name == property.DataType))
{
Name = property.Name,
Alias = property.Alias,
Description = property.Description
};
if (property.Tab == null)
ct.AddPropertyType(p);
else
ct.AddPropertyType(p, property.Tab.ToString());
}
var modifiedProperties = type.Properties.Join(properties, p => p.Alias, p => p.Alias, (meta, p) => new
{
Metadata = meta,
PropertyType = p
});
foreach (var property in modifiedProperties)
{
var p = property.PropertyType;
var meta = property.Metadata;
p.Name = meta.Name;
p.DataTypeDefinitionId = dataTypeDefinitions.First(dtd => dtd.Name == meta.DataType).Id;
p.Description = meta.Description;
//the following hack is brought to you be the letter F
var fn = p.GetType().GetProperty("PropertyGroupId", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(p) as System.Lazy<int>;
if (fn != null)
{
var tabId = fn.Value;
var tab = ct.PropertyGroups.FirstOrDefault(t => t.Id == tabId);
var newTabName = meta.Tab.ToString();
var newTab = ct.PropertyGroups.FirstOrDefault(t => t.Name == newTabName);
if (tab != null && tab.Name != newTabName)
{
if (newTab == null)
ct.AddPropertyGroup(newTabName);
ct.MovePropertyType(p.Alias, newTabName);
}
}
}
contentTypes.Add(ct);
}
ContentTypeService.Save(contentTypes);
var preprocessedData = contentTypes
.Join(types, x => x.Alias, x => x.Alias, (ct, m) => new { ct, m })
.ToDictionary(x => x.ct, x => x.m);
SetupAllowedChildren(preprocessedData);
SetupTemplates(preprocessedData);
ContentTypeService.Save(contentTypes);
}