本文整理汇总了C#中IReflect.ToString方法的典型用法代码示例。如果您正苦于以下问题:C# IReflect.ToString方法的具体用法?C# IReflect.ToString怎么用?C# IReflect.ToString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IReflect
的用法示例。
在下文中一共展示了IReflect.ToString方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildLoggerInjectors
private IEnumerable<Action<IComponentContext, object>> BuildLoggerInjectors(IReflect componentType)
{
//寻找类型为 "ILogger" 并且具有set方法的属性。
var loggerProperties = componentType
.GetProperties(BindingFlags.SetProperty | BindingFlags.Public | BindingFlags.Instance)
.Select(p => new
{
PropertyInfo = p,
p.PropertyType,
IndexParameters = p.GetIndexParameters(),
Accessors = p.GetAccessors(false)
})
.Where(x => x.PropertyType == typeof(ILogger)) //必须是一个日志记录器
.Where(x => !x.IndexParameters.Any()) //没有索引器
.Where(x => x.Accessors.Length != 1 || x.Accessors[0].ReturnType == typeof(void)); //必须具有set方法。
return loggerProperties.Select(entry => entry.PropertyInfo).Select(propertyInfo => (Action<IComponentContext, object>)((ctx, instance) =>
{
var component = componentType.ToString();
var logger = _loggerCache.GetOrAdd(component, key => ctx.Resolve<ILogger>(new TypedParameter(typeof(Type), componentType)));
propertyInfo.SetValue(instance, logger, null);
}));
}
示例2: ToTypeName
internal static String ToTypeName(IReflect ir){
if (ir is ClassScope)
return ((ClassScope)ir).GetName();
else if (ir is JSObject)
return ((JSObject)ir).GetClassName();
else if (ir is GlobalScope)
return "Global Object";
else{
Debug.Assert(ir is Type || ir is TypedArray);
return ir.ToString();
}
}
示例3: ToTypeName
internal static string ToTypeName(IReflect ir)
{
if (ir is ClassScope)
{
return ((ClassScope) ir).GetName();
}
if (ir is JSObject)
{
return ((JSObject) ir).GetClassName();
}
if (ir is GlobalScope)
{
return "Global Object";
}
return ir.ToString();
}