bool EnumMemberInfoComparer(EnumMemberInfo enumMemberInfo, string description, string id, string imageName, string name) { return(description == enumMemberInfo.Description && (enumMemberInfo.Id == null) ? (id == null) : id == enumMemberInfo.Id.ToString() && (enumMemberInfo.Image == null) ? (imageName == null) : imageName == enumMemberInfo.Image.ToString() && enumMemberInfo.Name == name); }
internal static JSEnumLiteral TryCreate(TypeInfo enumTypeInfo, long value) { EnumMemberInfo[] enumMembers = null; if (enumTypeInfo.IsFlagsEnum) { if (value == 0) { enumMembers = ( from em in enumTypeInfo.EnumMembers.Values where em.Value == 0 select em ).Take(1).ToArray(); } else { enumMembers = ( from em in enumTypeInfo.EnumMembers.Values where (em.Value != 0) && ((value & em.Value) == em.Value) select em ).ToArray(); } } else { EnumMemberInfo em; if (enumTypeInfo.ValueToEnumMember.TryGetValue(value, out em)) { enumMembers = new EnumMemberInfo[1] { em } } ; } if ((enumMembers != null) && (enumMembers.Length > 0)) { return(new JSEnumLiteral(value, enumMembers)); } return(null); } }
public static Lazy <ImageSource> GetLazyImageSource(EnumMemberInfo enumMemberInfo) { return((Lazy <ImageSource>)enumMemberInfo.GetType().GetField("image", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(enumMemberInfo)); }
protected JSExpression Translate_Ldc(ILExpression node, long value) { string typeName = null; var expressionType = node.ExpectedType ?? node.InferredType; TypeInfo typeInfo = null; if (expressionType != null) { typeName = expressionType.FullName; typeInfo = TypeInfo.Get(expressionType); } if ((typeInfo != null) && (typeInfo.EnumMembers.Count > 0)) { EnumMemberInfo[] enumMembers = null; if (typeInfo.IsFlagsEnum) { if (value == 0) { enumMembers = ( from em in typeInfo.EnumMembers.Values where em.Value == 0 select em ).Take(1).ToArray(); } else { enumMembers = ( from em in typeInfo.EnumMembers.Values where (em.Value != 0) && ((value & em.Value) == em.Value) select em ).ToArray(); } } else { EnumMemberInfo em; if (typeInfo.ValueToEnumMember.TryGetValue(value, out em)) enumMembers = new EnumMemberInfo[1] { em }; } if ((enumMembers != null) && (enumMembers.Length > 0)) return new JSEnumLiteral(value, enumMembers); else { switch (node.Code) { case ILCode.Ldc_I4: return new JSIntegerLiteral(value, typeof(int)); case ILCode.Ldc_I8: return new JSIntegerLiteral(value, typeof(long)); } throw new NotImplementedException(); } } else if (typeName == "System.Boolean") { return JSLiteral.New(value != 0); } else if (typeName == "System.Char") { return JSLiteral.New((char)value); } else { switch (node.Code) { case ILCode.Ldc_I4: return new JSIntegerLiteral(value, typeof(int)); case ILCode.Ldc_I8: return new JSIntegerLiteral(value, typeof(long)); } throw new NotImplementedException(); } }
bool EnumMemberInfoComparer(EnumMemberInfo enumMemberInfo, string description, string id, string imageName, string name) { return description == enumMemberInfo.Description && (enumMemberInfo.Id == null) ? (id == null) : id == enumMemberInfo.Id.ToString() && (enumMemberInfo.Image == null) ? (imageName == null) : imageName == enumMemberInfo.Image.ToString() && enumMemberInfo.Name == name; }