//private readonly ILogger _logger = null; public AuditEventHandler(IServiceProvider serviceProvider /*, ILogger logger*/, DictionaryAccessor dictionaryAccessor) { _serviceProvider = serviceProvider; _dictionaryAccessor = dictionaryAccessor; //_dictionaryAccessor = serviceProvider.GetService<DictionaryAccessor>(); //_logger = logger; }
/// <summary> /// Gets the member accessor for the specified object if not already cached. This method can have an override. /// </summary> /// <param name="target"></param> /// <returns></returns> protected virtual IObjectAccessor GetMemberAccessorImpl(object target) { var type = target.GetType(); IObjectAccessor accessor; if (target is IScriptObject) { accessor = ScriptObjectAccessor.Default; } else if (target is string) { accessor = StringAccessor.Default; } else if (type.IsPrimitiveOrDecimal()) { accessor = PrimitiveAccessor.Default; } else if (DictionaryAccessor.TryGet(target, out accessor)) { } else if (type.IsArray) { accessor = ArrayAccessor.Default; } else if (target is IList) { accessor = ListAccessor.Default; } else { accessor = new TypedObjectAccessor(type, MemberFilter, MemberRenamer); } return(accessor); }
/// <summary> /// Gets the member accessor for the specified object if not already cached. This method can have an override. /// </summary> /// <param name="target"></param> /// <returns></returns> protected virtual IObjectAccessor GetMemberAccessorImpl(object target) { Type type = target.GetType(); IObjectAccessor accessor; if (target is IScriptObject) { accessor = ScriptObjectAccessor.Default; } else if (DictionaryAccessor.TryGet(type, out accessor)) { // do nothing } else if (type.GetTypeInfo().IsArray) { accessor = ArrayAccessor.Default; } else if (target is IList) { accessor = ListAccessor.Default; } else { accessor = new TypedObjectAccessor(type, MemberFilter, MemberRenamer); } return(accessor); }
protected static void Resolve(Dictionary <string, IValueAccessor> output, object value) { if (value == null) { return; } if (value is DependencyObject obj) { var key = GetKey(obj); if (key != null) { foreach (var resolver in Resolvers) { if (resolver.BaseType.IsInstanceOfType(obj)) { output[key] = resolver.Resolve(obj); return; } } } IEnumerable children; if (obj is Decorator decorator) { children = new[] { decorator.Child } } ; else if (obj is ContentControl contentControl) { children = new[] { contentControl.Content } } ; else if (obj is Panel panel) { children = panel.Children; } else if (key != null) { throw new NotSupportedException(); } else { return; } var dict = key == null ? output : new Dictionary <string, IValueAccessor>(); foreach (var child in children) { Resolve(dict, child); } if (key != null) { output[key] = new DictionaryAccessor(dict); } } }
/// <summary> /// Gets the member accessor for the specified object if not already cached. This method can have an override. /// </summary> /// <param name="target"></param> /// <returns></returns> protected virtual IObjectAccessor GetMemberAccessorImpl(object target) { var type = target.GetType(); IObjectAccessor accessor; if (target is IScriptObject) { accessor = ScriptObjectAccessor.Default; } else if (!DictionaryAccessor.TryGet(type, out accessor)) { accessor = new TypedObjectAccessor(type, MemberRenamer); } return(accessor); }
protected override IObjectAccessor GetMemberAccessorImpl(object target) { // Duplicated from Scriban.TemplateContext#GetMemberAccessorImpl var type = target.GetType(); IObjectAccessor accessor; if (target is IScriptObject) { accessor = ScriptObjectAccessor.Default; } else if (target is string) { accessor = StringAccessor.Default; } else if (type.IsPrimitiveOrDecimal()) { throw new NotImplementedException("member access of a primitive or decimal"); //accessor = PrimitiveAccessor.Default; } else if (DictionaryAccessor.TryGet(target, out accessor)) { } else if (type.IsArray) { accessor = ArrayAccessor.Default; } else if (target is IList) { accessor = ListAccessor.Default; } else { accessor = new NScribeTypedObjectAccessor(type, MemberFilter, MemberRenamer); } return(accessor); }
/// <summary> /// Gets the member accessor for the specified object. /// </summary> /// <param name="target">The target object to get a member accessor.</param> /// <returns>A member accessor</returns> public IMemberAccessor GetMemberAccessor(object target) { if (target == null) { return(NullAccessor.Default); } var type = target.GetType(); IMemberAccessor accessor; if (!memberAccessors.TryGetValue(type, out accessor)) { if (target is IScriptObject) { accessor = ScriptObjectExtensions.Accessor; } else if (!DictionaryAccessor.TryGet(type, out accessor)) { accessor = new TypedMemberAccessor(type, MemberRenamer); } memberAccessors.Add(type, accessor); } return(accessor); }
public AuditEventHandler(IServiceProvider serviceProvider, DictionaryAccessor dictionaryAccessor) { _serviceProvider = serviceProvider; _dictionaryAccessor = dictionaryAccessor; }
public SuktMultiTenancyMiddleware(RequestDelegate next, DictionaryAccessor dictionaryAccessor) { _next = next; _dictionaryAccessor = dictionaryAccessor; }