public static T GetTypeAttribute <T>(this IDotnetExpander expander, object value) where T : Attribute { string assemblyName, typeName, valueName; expander.ParseName(value, out assemblyName, out typeName, out valueName); return(expander.GetTypeAttribute <T>(assemblyName, typeName)); }
public static FieldInfo[] GetFields(this IDotnetExpander expander, string name) { string assemblyName, typeName, value; expander.ParseName(name, out assemblyName, out typeName, out value); return(expander.GetFields(assemblyName, typeName)); }
public static PropertyInfo[] GetSimpleProperties(this IDotnetExpander expander, string assemblyName, string typeName) { return(Ex.Cache.Read("simpleproperties", assemblyName ?? "", typeName ?? "", "properties", () => { return expander.GetProperties(assemblyName, typeName).Where(p => ValueExtensions.IsPrimitive(p.PropertyType)).ToArray(); })); }
public static string GetMemberName(this IDotnetExpander expander, LambdaExpression memberSelector) { if (memberSelector == null) { return(null); } var currentExpression = memberSelector.Body; while (true) { switch (currentExpression.NodeType) { case ExpressionType.ArrayLength: return("Length"); case ExpressionType.Parameter: return(((ParameterExpression)currentExpression).Name); case ExpressionType.Call: return(((MethodCallExpression)currentExpression).Method.Name); case ExpressionType.MemberAccess: return(((MemberExpression)currentExpression).Member.Name); case ExpressionType.Convert: case ExpressionType.ConvertChecked: currentExpression = ((UnaryExpression)currentExpression).Operand; break; case ExpressionType.Invoke: currentExpression = ((InvocationExpression)currentExpression).Expression; break; default: return(null); } } }
public static T GetPropertyAttribute <T>(this IDotnetExpander expander, Type type, string propertyName) where T : Attribute { string assemblyName, typeName; expander.ParseName(type, out assemblyName, out typeName); return(expander.GetPropertyAttribute <T>(assemblyName, typeName, propertyName)); }
public static MethodInfo GetMethod(this IDotnetExpander expander, object value, string methodName) { string assemblyName, typeName, valueName; expander.ParseName(value, out assemblyName, out typeName, out valueName); return(expander.GetMethod(assemblyName, typeName, methodName)); }
public static Attribute[] GetFieldAttributes(this IDotnetExpander expander, object value, string fieldName) { string assemblyName, typeName, valueName; expander.ParseName(value, out assemblyName, out typeName, out valueName); return(expander.GetFieldAttributes(assemblyName, typeName, fieldName)); }
public static Attribute[] GetMethodAttributes(this IDotnetExpander expander, Type type, string methodName) { string assemblyName, typeName; expander.ParseName(type, out assemblyName, out typeName); return(expander.GetMethodAttributes(assemblyName, typeName, methodName)); }
public static T GetMethodAttribute <T>(this IDotnetExpander expander, string name, string methodName) where T : Attribute { string assemblyName, typeName, value; expander.ParseName(name, out assemblyName, out typeName, out value); return(expander.GetMethodAttribute <T>(assemblyName, typeName, methodName)); }
public static Type GetType(this IDotnetExpander expander, string name) { string assemblyName, typeName, value; expander.ParseName(name, out assemblyName, out typeName, out value); return(expander.GetType(assemblyName, typeName)); }
public static MethodInfo[] GetMethods(this IDotnetExpander expander, Type type) { string assemblyName, typeName; expander.ParseName(type, out assemblyName, out typeName); return(expander.GetMethods(assemblyName, typeName)); }
public static PropertyInfo[] GetSimpleProperties(this IDotnetExpander expander, string name) { string assemblyName, typeName, value; expander.ParseName(name, out assemblyName, out typeName, out value); return(expander.GetSimpleProperties(assemblyName, typeName)); }
public static Attribute[] GetPropertyAttributes(this IDotnetExpander expander, string name, string propertyName) { string assemblyName, typeName, value; expander.ParseName(name, out assemblyName, out typeName, out value); return(expander.GetPropertyAttributes(assemblyName, typeName, propertyName)); }
public static FieldInfo GetField(this IDotnetExpander expander, Type type, string fieldName) { string assemblyName, typeName; expander.ParseName(type, out assemblyName, out typeName); return(expander.GetField(assemblyName, typeName, fieldName)); }
public static PropertyInfo[] GetSelfProperties(this IDotnetExpander expander, Type type) { string assemblyName, typeName; expander.ParseName(type, out assemblyName, out typeName); return(expander.GetSelfProperties(assemblyName, typeName)); }
public static PropertyInfo GetProperty(this IDotnetExpander expander, Type type, string propertyName) { string assemblyName, typeName; expander.ParseName(type, out assemblyName, out typeName); return(expander.GetProperty(assemblyName, typeName, propertyName)); }
public static void ParseName(this IDotnetExpander expander, string name, out string assemblyName, out string typeName, out string value) { var names = (name ?? "").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); assemblyName = names.Length > 0 ? names[0] : string.Empty; typeName = names.Length > 1 ? names[1] : string.Empty; value = names.Length > 2 ? names[2] : string.Empty; }
public static PropertyInfo[] GetSelfProperties(this IDotnetExpander expander, string assemblyName, string typeName) { return(Ex.Cache.Read("selfproperties", assemblyName ?? "", typeName ?? "", "properties", () => { var type = expander.GetType(assemblyName, typeName); return type?.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly) ?? new PropertyInfo[0]; })); }
public static MethodInfo[] GetMethods(this IDotnetExpander expander, string assemblyName, string typeName) { return(Ex.Cache.Read("methods", assemblyName ?? "", typeName ?? "", () => { var type = expander.GetType(assemblyName, typeName); return type?.GetMethods(BindingFlags.Instance | BindingFlags.Public) ?? new MethodInfo[0]; })); }
public static FieldInfo[] GetFields(this IDotnetExpander expander, string assemblyName, string typeName) { return(Ex.Cache.Read("fields", assemblyName ?? "", typeName ?? "", () => { var type = expander.GetType(assemblyName, typeName); return type == null ? new FieldInfo[0] : (type.IsEnum ? type.GetFields() : type.GetFields(BindingFlags.Instance | BindingFlags.Public)); })); }
public static T GetTypeAttribute <T>(this IDotnetExpander expander, string assemblyName, string typeName) where T : Attribute { return(Ex.Cache.Read("typeattribute", assemblyName ?? "", typeName ?? "", () => { var type = expander.GetType(assemblyName, typeName); var customAttributes = type?.GetCustomAttributes(typeof(T), true); return customAttributes?.Length > 0 ? customAttributes[0] as T : default(T); })); }
public static T GetPropertyAttribute <T>(this IDotnetExpander expander, string assemblyName, string typeName, string propertyName) where T : Attribute { return(Ex.Cache.Read("propertyattribute", assemblyName ?? "", typeName ?? "", propertyName ?? "", () => { var propertyInfo = expander.GetProperty(assemblyName, typeName, propertyName); var customAttributes = propertyInfo?.GetCustomAttributes(typeof(T), true); return customAttributes?.Length > 0 ? customAttributes[0] as T : default(T); })); }
public static T GetMethodAttribute <T>(this IDotnetExpander expander, string assemblyName, string typeName, string methodName) where T : Attribute { return(Ex.Cache.Read("methodattribute", assemblyName ?? "", typeName ?? "", methodName ?? "", () => { var methodInfo = expander.GetMethod(assemblyName, typeName, methodName); var customAttributes = methodInfo.GetCustomAttributes(typeof(T), true); return customAttributes.Length > 0 ? customAttributes[0] as T : default(T); })); }
private static string GetResource(IDotnetExpander expander, string assemblyName, string resourceName, string resourceKey) { assemblyName = GetAssembly(expander, assemblyName).GetName().Name; return(Ex.Cache.Read("resources", (assemblyName ?? string.Empty).ToLower(), (resourceName ?? string.Empty).ToLower(), (resourceKey ?? string.Empty).ToLower(), () => { var baseName = $"{assemblyName}.Resx.{resourceName}"; var rm = GetResourceManager(expander, baseName, assemblyName); return GetResource(rm, resourceKey); })); }
public static string BuildName(this IDotnetExpander expander, object value) { if (value == null) { return(string.Empty); } var type = value.GetType(); var stringValue = ValueExtensions.IsPrimitive(type) ? $", {value.As<string>()}" : string.Empty; return($"{expander.BuildName(type)}{stringValue}"); }
public static void ParseName(this IDotnetExpander expander, string metaName, out string assemblyName, out string typeName) { assemblyName = null; typeName = null; if (string.IsNullOrWhiteSpace(metaName)) { return; } var names = metaName.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); assemblyName = names.Length > 0 ? names[0] : null; typeName = names.Length > 1 ? names[1] : null; }
public static object CreateInstance(this IDotnetExpander expander, string name, object[] args = null) { string assemblyName, typeName, value; expander.ParseName(name, out assemblyName, out typeName, out value); if (string.IsNullOrWhiteSpace(value)) { return(expander.CreateInstance(assemblyName, typeName, args)); } var type = expander.GetType(assemblyName, typeName); return(ValueExtensions.IsPrimitive(type) ? value.As(type) : expander.CreateInstance(assemblyName, typeName, args)); }
public static object GetConsole(this IDotnetExpander expander, Type type) { return(Ex.Cache.Read("consolesettings", type.AssemblyQualifiedName, () => { var setting = (ExSetting)CreateInstance(expander, type); string name; setting.IsDeclare = Ex.Cache.Read("commandlinearguments", setting.Code.ToLower(), out name); if (setting.IsDeclare) { setting.Name = name; } setting.Validate(); return setting; })); }
public static object GetResource(this IDotnetExpander expander, Type type) { return(Ex.Cache.Read("resourcesettings", type.AssemblyQualifiedName, () => { var setting = (ExSetting)CreateInstance(expander, type); setting.Name = GetSettingValue(setting, setting.Name, GetResourceNames(expander, setting.AssemblyName, setting.Code)); setting.Description = GetSettingValue(setting, setting.Description, GetResourceDescriptions(expander, setting.AssemblyName, setting.Code)); setting.Shortcut = GetSettingValue(setting, setting.Shortcut, GetResourceShortcuts(expander, setting.AssemblyName, setting.Code)); setting.SpecName = GetSettingValue(setting, setting.SpecName, GetResourceSpecifies(expander, setting.AssemblyName, setting.Code)); setting.Picture = System.Convert.FromBase64String(GetSettingValue(setting, GuiExtensions.GetDefaultImageAsString(), GetResourcePictures(expander, setting.AssemblyName, setting.Code))); setting.Validate(); return setting; })); }
private static ResourceManager GetResourceManager(IDotnetExpander expander, string baseName, string assemblyName) { return(Ex.Cache.Read("resourcemanagers", (assemblyName ?? string.Empty).ToLower(), (baseName ?? string.Empty).ToLower(), () => { try { return new ResourceManager(baseName ?? string.Empty, GetAssembly(expander, assemblyName)); } catch { return null; } })); }