public override object ProvideValue(IServiceProvider serviceProvider) { ValidationHelper.NotNull(serviceProvider, "serviceProvider"); var rootObjectProvider = serviceProvider.GetService(typeof(IRootObjectProvider)) as IRootObjectProvider; if (rootObjectProvider == null) { throw new InvalidOperationException(string.Format(ServiceException, GetType().Name, "IRootObjectProvider")); } if (rootObjectProvider.RootObject is ResourceDictionary) { var ret1 = StaticResource.ProvideValue(serviceProvider); return(ret1); } var themeInfo = ResourceInfoAttribute.FromAssembly(rootObjectProvider.RootObject.GetType().Assembly); if (themeInfo != null) { switch (themeInfo.Mode) { case ResourceMode.Static: var ret2 = StaticResource.ProvideValue(serviceProvider); return(ret2); case ResourceMode.Dynamic: var ret3 = DynamicResource.ProvideValue(serviceProvider); return(ret3); } } throw new InvalidOperationException("You must mark your assembly with Elysium.ResourceInfo attribute or use Elysium.ResourceDictionary"); }
public bool TryGetResourceInfoForType(Type type, out ResourceInfoAttribute resourceInfo) { resourceInfo = type.GetCustomAttributes(typeof(ResourceInfoAttribute), false) .OfType <ResourceInfoAttribute>() .FirstOrDefault(); return(resourceInfo != null); }
public ClientType(Type mappedTypeInstance, ITypeResolver typeMapper) : base(typeMapper, mappedTypeInstance) { //SerializationMode = TypeSerializationMode.Complex; resourceInfo = mappedTypeInstance .GetCustomAttributes(typeof (ResourceInfoAttribute), false) .OfType<ResourceInfoAttribute>() .First(); }
public void OnActionExecuted(ActionExecutedContext context) { string prevtype = string.Empty; if (context.HttpContext.Response.Headers.ContainsKey(HeaderNames.ContentType)) { prevtype = context.HttpContext.Response.Headers[HeaderNames.ContentType]; } // Don't process responses that have already have resource info or don't have json payloads if (prevtype.Contains("vnd") || !prevtype.Contains("json")) { return; } IModule mod = Environment.Host.GetModuleByAssemblyName(context.Controller.GetType().GetTypeInfo().Assembly.FullName); string version = mod != null ? mod.Version : string.Empty; context.HttpContext.Response.Headers[HeaderNames.ContentType] = ResourceInfoAttribute.ContentType(string.Empty, version, prevtype); }
public bool TryGetResourceInfoForType(Type type, out ResourceInfoAttribute resourceInfo) { return ResourceInfoAttribute.TryGet(type, out resourceInfo); }