本文整理汇总了C#中IFacetHolder.AddFacet方法的典型用法代码示例。如果您正苦于以下问题:C# IFacetHolder.AddFacet方法的具体用法?C# IFacetHolder.AddFacet怎么用?C# IFacetHolder.AddFacet使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IFacetHolder
的用法示例。
在下文中一共展示了IFacetHolder.AddFacet方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessCollection
private bool ProcessCollection(IFacetHolder holder) {
var typeOfFacet = holder.GetFacet<ITypeOfFacet>();
Type collectionElementType;
if (typeOfFacet != null) {
collectionElementType = typeOfFacet.Value;
}
else {
collectionElementType = typeof (object);
holder.AddFacet(new TypeOfFacetDefaultToObject(holder, Reflector));
}
holder.AddFacet(new DotNetCollectionFacet(holder, collectionElementType));
return true;
}
示例2: Process
public override bool Process(PropertyInfo property, IMethodRemover methodRemover, IFacetHolder holder) {
if (CollectionUtils.IsCollectionButNotArray(property.PropertyType)) {
holder.AddFacet(new CollectionResetFacet(property, holder));
return true;
}
return base.Process(property, methodRemover, holder);
}
示例3: Reparent
public virtual void Reparent(IFacetHolder newFacetHolder) {
IFacetHolder oldFacetHolder = FacetHolder;
oldFacetHolder.RemoveFacet(this);
newFacetHolder.AddFacet(this);
if (FacetHolder != newFacetHolder) {
FacetHolder = newFacetHolder;
}
}
示例4: DecoratedFacet
private void DecoratedFacet(Type facetType, IFacetHolder holder) {
if (facetDecorators.ContainsKey(facetType)) {
foreach (IFacetDecorator decorator in facetDecorators[facetType]) {
IFacet previousFacet = holder.GetFacet(facetType);
IFacet decoratedFacet = decorator.Decorate(previousFacet, holder);
if (decoratedFacet != null && decoratedFacet != previousFacet) {
holder.AddFacet(decoratedFacet);
}
}
}
}
示例5: ProcessGenericEnumerable
private bool ProcessGenericEnumerable(Type type, IFacetHolder holder) {
var typeOfFacet = holder.GetFacet<ITypeOfFacet>();
bool isCollection = CollectionUtils.IsGenericCollection(type); // as opposed to IEnumerable
bool isQueryable = CollectionUtils.IsGenericQueryable(type);
bool isSet = CollectionUtils.IsSet(type);
Type collectionElementType;
if (typeOfFacet != null) {
collectionElementType = typeOfFacet.Value;
}
else {
collectionElementType = CollectionUtils.ElementType(type);
holder.AddFacet(new TypeOfFacetInferredFromGenerics(collectionElementType, holder, Reflector));
}
Type facetType = isQueryable ? typeof (DotNetGenericIQueryableFacet<>) : (isCollection ? typeof (DotNetGenericCollectionFacet<>) : typeof (DotNetGenericIEnumerableFacet<>));
Type genericFacet = facetType.GetGenericTypeDefinition();
Type genericCollectionFacetType = genericFacet.MakeGenericType(CollectionUtils.ElementType(type));
var facet = (IFacet) Activator.CreateInstance(genericCollectionFacetType, holder, collectionElementType, isSet);
holder.AddFacet(facet);
return true;
}
示例6: ProcessArray
private bool ProcessArray(Type type, IFacetHolder holder) {
holder.AddFacet(new DotNetArrayFacet(holder, type.GetElementType()));
holder.AddFacet(new TypeOfFacetInferredFromArray(type.GetElementType(), holder, Reflector));
return true;
}