public ClassDefinition GetClassDefinition(object instance) { if (instance is ASObject) { ClassDefinition classDefinition; ASObject aso = instance as ASObject; ClassMember[] classMemberList = new ClassMember[aso.Count]; int i = 0; foreach (KeyValuePair <string, object> entry in aso) { ClassMember classMember = new ClassMember(entry.Key, BindingFlags.Default, MemberTypes.Custom, null); classMemberList[i] = classMember; i++; } string customClassName = aso.TypeName; classDefinition = new ClassDefinition(customClassName, classMemberList, false, false); return(classDefinition); } throw new Exception("GetClassDefinition is not ASObject"); }
public override ClassDefinition GetClassDefinition(object instance) { //EntityObject eo = instance as EntityObject; Type type = instance.GetType(); BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.DeclaredOnly; MemberInfo[] memberInfos = ReflectionUtils.FindMembers(type, MemberTypes.Property, flags, typeof(System.Runtime.Serialization.DataMemberAttribute)); List <ClassMember> classMemberList = new List <ClassMember>(); for (int i = 0; i < memberInfos.Length; i++) { MemberInfo memberInfo = memberInfos[i]; PropertyInfo pi = memberInfo as PropertyInfo; object[] attributes = memberInfo.GetCustomAttributes(false); ClassMember classMember = new ClassMember(memberInfo.Name, flags, memberInfo.MemberType, attributes); classMemberList.Add(classMember); } string customClassName = type.FullName; customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName); ClassMember[] classMembers = classMemberList.ToArray(); ClassDefinition classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance)); return(classDefinition); }
public async Task <IActionResult> Add(AddStudentViewModel model, [FromRoute] int id) { var user = await GetCurrentUserAsync(); var newStudent = new Student { FirstName = model.FirstName, LastName = model.LastName, Grade = model.Grade, ApplicationUserId = user.Id }; if (ModelState.IsValid && newStudent.ApplicationUserId != null) { context.Add(newStudent); await context.SaveChangesAsync(); Student student = await context.Student.Where(s => s.FirstName == newStudent.FirstName && s.LastName == newStudent.LastName && s.Grade == newStudent.Grade && s.ApplicationUserId == newStudent.ApplicationUserId).SingleOrDefaultAsync(); ClassMember classMember = new ClassMember { StudentId = student.StudentId, ClassId = id }; context.Add(classMember); await context.SaveChangesAsync(); return(RedirectToAction("Index", new RouteValueDictionary( new { controller = "Profile", action = "Index" }))); } return(View(model)); }
private static string ToFieldName(ClassMember property) { const string prefix = "_"; var withFirstLetterLower = ToFirstLetterLower(property.Name); return(prefix + withFirstLetterLower); }
public override ClassDefinition GetClassDefinition(object instance) { Type type = instance.GetType(); BindingFlags bindingAttr = BindingFlags.Public | BindingFlags.Instance; PropertyInfo[] propertyInfos = type.GetProperties(bindingAttr); #if !(NET_1_1) List <ClassMember> classMemberList = new List <ClassMember>(); #else ArrayList classMemberList = new ArrayList(); #endif for (int i = 0; i < propertyInfos.Length; i++) { PropertyInfo propertyInfo = propertyInfos[i]; if (propertyInfo.Name != "HelpLink" && propertyInfo.Name != "TargetSite") { ClassMember classMember = new ClassMember(propertyInfo.Name, bindingAttr, propertyInfo.MemberType, null); classMemberList.Add(classMember); } } string customClassName = type.FullName; customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName); #if !(NET_1_1) ClassMember[] classMembers = classMemberList.ToArray(); #else ClassMember[] classMembers = classMemberList.ToArray(typeof(ClassMember)) as ClassMember[]; #endif ClassDefinition classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance)); return(classDefinition); }
public static ClassMember Intercept(ClassMember member) { if (IsIndependent(member.UnderlyingType)) return new ClassMemberIndependent(member); else return member; }
public ClassDefinition GetClassDefinition(object instance) { if (instance is ASObject) { ClassDefinition classDefinition; ASObject aso = instance as ASObject; if (aso.IsTypedObject) { ClassMember[] classMemberList = new ClassMember[aso.Count]; int i = 0; foreach (KeyValuePair <string, object> entry in aso) { ClassMember classMember = new ClassMember(entry.Key, BindingFlags.Default, MemberTypes.Custom, null); classMemberList[i] = classMember; i++; } string customClassName = aso.TypeName; classDefinition = new ClassDefinition(customClassName, classMemberList, false, false); } else { string customClassName = string.Empty; classDefinition = new ClassDefinition(customClassName, ClassDefinition.EmptyClassMembers, false, true); } if (log.IsDebugEnabled) { log.Debug(string.Format("Creating class definition for AS object {0}", aso)); } return(classDefinition); } throw new ArgumentException(); }
public override ClassDefinition GetClassDefinition(object instance) { //EntityObject eo = instance as EntityObject; var type = instance.GetType(); var flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.DeclaredOnly; var memberInfos = ReflectionUtils.FindMembers(type, MemberTypes.Property, flags, typeof(System.Runtime.Serialization.DataMemberAttribute)); var classMemberList = new List <ClassMember>(); for (var i = 0; i < memberInfos.Length; i++) { var memberInfo = memberInfos[i]; var pi = memberInfo as PropertyInfo; //Do not serialize EntityReferences if (pi.PropertyType.IsSubclassOf(typeof(System.Data.Objects.DataClasses.EntityReference))) { continue; } var attributes = memberInfo.GetCustomAttributes(false); var classMember = new ClassMember(memberInfo.Name, flags, memberInfo.MemberType, attributes); classMemberList.Add(classMember); } var customClassName = type.FullName; customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName); var classMembers = classMemberList.ToArray(); var classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance)); return(classDefinition); }
public GetterFunction(ClassMember classMember) : base(classMember.Owner, $"get{classMember.Name.ToUpperFirstCharacter()}", classMember.Type) { ClassMember = classMember; Expressions.Add(new ReturnExpression { ClassMember = classMember }); }
public ClassDefinition GetClassDefinition(object instance) { Type type = instance.GetType(); List <ClassMember> classMemberList = new List <ClassMember>(); FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Instance); for (int i = 0; i < fieldInfos.Length; i++) { FieldInfo fieldInfo = fieldInfos[i]; string name = fieldInfo.Name; ClassMember classMember = new ClassMember(name, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance, fieldInfo.MemberType, null); classMemberList.Add(classMember); } ClassMember[] classMembers = classMemberList.ToArray(); string customClassName = type.FullName; customClassName = AMFWriter.GetCustomClass(customClassName); ClassDefinition classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance)); return(classDefinition); }
/// <summary> /// Lên lớp, thêm trạng thái lớp mới /// </summary> /// <param name="studentID"></param> /// <param name="grade"></param> /// <param name="className"></param> /// <param name="configID"></param> /// <param name="context"></param> public void GradeUp(int studentID, Grade grade, string className, int configID, EduVinhContext context) { EduVinhContext _context = context; string classType = className.Substring(1, 1); bool existNext = _context.Classes.Any(c => c.ClassName.Contains(classType) && c.Grade == grade); if (existNext) { int nextID = _context.Classes.Where(c => c.ClassName.Contains(classType) && c.Grade == grade).First().ClassID; ClassMember newMem = new ClassMember { ClassID = nextID, ConfigureID = configID, LearnStatus = LearnStatus.Learning, UserID = studentID, }; _context.ClassMembers.Add(newMem); } else { int nextID = context.Classes.Where(c => c.Grade == grade).First().ClassID; ClassMember newMem = new ClassMember { ClassID = nextID, ConfigureID = configID, LearnStatus = LearnStatus.Learning, UserID = studentID, }; _context.ClassMembers.Add(newMem); } _context.SaveChanges(); }
/// <summary> /// Đổi giáo viên của môn trong 1 lớp /// </summary> /// <param name="ClassID"></param> /// <param name="ConfigID"></param> /// <param name="TeacherID"></param> /// <returns></returns> public JsonResult ChangeTeacherSubject(int ClassID, int ConfigID, int?OldTeacherID, int NewTeacherID) { try { //Nếu có giáo viên khác dạy trước thì xóa đi bool exist = db.MemberRepository .GetAll() .Any(e => e.ConfigureID == ConfigID && e.ClassID == ClassID && e.UserID == OldTeacherID); if (exist) { ClassMember member = db.MemberRepository.GetAll() .Where(e => e.ConfigureID == ConfigID && e.ClassID == ClassID && e.UserID == OldTeacherID) .FirstOrDefault(); db.MemberRepository.Delete(member); } ClassMember newMem = new ClassMember { ClassID = ClassID, UserID = NewTeacherID, ConfigureID = ConfigID, }; db.MemberRepository.Add(newMem); db.SaveChanges(); return(Json("Đổi giáo viên thành công", JsonRequestBehavior.AllowGet)); } catch (Exception e) { Response.StatusCode = 500; return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }
internal ClassDefinition ReadClassDefinition(int handle) { ClassDefinition classDefinition = null; //an inline object bool inlineClassDef = ((handle & 1) != 0); handle = handle >> 1; if (inlineClassDef) { //inline class-def string typeIdentifier = ReadAMF3String(); //flags that identify the way the object is serialized/deserialized bool externalizable = ((handle & 1) != 0); handle = handle >> 1; bool dynamic = ((handle & 1) != 0); handle = handle >> 1; ClassMember[] members = new ClassMember[handle]; for (int i = 0; i < handle; i++) { string name = ReadAMF3String(); ClassMember classMember = new ClassMember(name, BindingFlags.Default, MemberTypes.Custom); members[i] = classMember; } classDefinition = new ClassDefinition(typeIdentifier, members, externalizable, dynamic); AddClassReference(classDefinition); } else { //A reference to a previously passed class-def classDefinition = ReadClassReference(handle); } return(classDefinition); }
/// <summary> /// Chuyển lớp cho học sinh /// </summary> /// <param name="ClassID"></param> /// <param name="Identifier"></param> /// <returns></returns> public JsonResult SwitchClass(int ClassID, string Identifier) { try { // Lấy niên khóa Configure Configure = db.ConfigRepository.GetAll().Where(e => e.IsActive).FirstOrDefault(); // Nếu chuyển ở năm học hiện tại thì cho phép, còn lại thì không User student = db.UserRepository.FindByIdentifier(Identifier); bool IsLearning = db.MemberRepository.GetAll().Any(e => e.LearnStatus == LearnStatus.Learning && e.ConfigureID == Configure.ID && e.UserID == student.ID); if (!IsLearning) { return(Json(new { message = "Học sinh này đã tốt nghiệp", success = false }, JsonRequestBehavior.AllowGet)); } List <ClassMember> old_member = db.MemberRepository.GetAll().Where(e => e.UserID == student.ID).ToList(); bool CurrentClass = old_member.Any(e => e.ClassID == ClassID && Configure.ID == e.ConfigureID); //Không cho chuyển trùng lớp đang học if (CurrentClass) { return(Json(new { message = "Bạn chuyển trùng lớp đang học", success = false }, JsonRequestBehavior.AllowGet)); } LearnStatus status = LearnStatus.Learning; bool SwitchOldClass = false; //Bỏ các lớp khác old_member.ForEach(e => { // Lấy tình trạng học của lớp cũ để đưa sang lớp mới if (e.LearnStatus == LearnStatus.Learning) { status = e.LearnStatus; //Đánh dấu đã chuyển e.LearnStatus = LearnStatus.Switched; } //Nếu trường hợp chuyển lại lớp cũ.. if (e.LearnStatus == LearnStatus.Switched && e.ClassID == ClassID) { e.LearnStatus = LearnStatus.Learning; SwitchOldClass = true; } }); if (!SwitchOldClass) { ClassMember new_member = new ClassMember { UserID = student.ID, ClassID = ClassID, ConfigureID = Configure.ID, LearnStatus = status, }; db.MemberRepository.Add(new_member); } db.SaveChanges(); return(Json(new { message = "Chuyển lớp thành công!", success = true }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { Response.StatusCode = 500; return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }
public void CastingShouldVisibilityModifier(string value, VisibilityModifier expected) { // Act ClassMember member = value; // Assert member.Visibility.Should().Be(expected); }
public object GetValue(object instance, ClassMember member) { Type type = instance.GetType(); FieldInfo fieldInfo = type.GetField(member.Name, member.BindingFlags); return(fieldInfo.GetValue(instance)); }
public void CastingShouldLeaveTrimmedNamePart(string value, string expected) { // Act ClassMember member = value; // Assert member.Name.Should().Be(expected); }
public void CastingShouldDetectAbstractModifier(string value, bool expected) { // Act ClassMember member = value; // Assert member.IsAbstract.Should().Be(expected); }
public void SetValue(object instance, ClassMember member, object value) { Type type = instance.GetType(); FieldInfo fieldInfo = type.GetField(member.Name, member.BindingFlags); fieldInfo.SetValue(instance, value); }
public void SetValue(object instance, ClassMember member, object value) { if (instance is ASObject) { ASObject aso = instance as ASObject; aso[member.Name] = value; } throw new ArgumentException(); }
private string GetLable(ClassMember classMember) { if (classMember == null) { return(""); } return(classMember.GetLabel()); }
public static double FindAttendanceForStudent(int Id, List <ClassMember> ClassMembers, List <Attendance> AllAttendance, DateTime today) { ClassMember DesiredClassMember = ClassMembers.Where(cm => cm.StudentId == Id).SingleOrDefault(); double DaysAttended = AllAttendance.Where(a => a.ClassMemberId == DesiredClassMember.ClassMemberId && a.Date <= today && a.CurrentlyAbsent == false).Count(); double AvailableDays = AllAttendance.Where(a => a.ClassMemberId == DesiredClassMember.ClassMemberId && a.Date <= today).Count(); return((DaysAttended / AvailableDays) * 100); }
public SetterFunction(ClassMember classMember) : base(classMember.Owner, $"set{classMember.Name.ToUpperFirstCharacter()}", JavaVoid) { ClassMember = classMember; var fp = new FunctionParameter(classMember.Name, ClassMember.Type); FunctionParameters.Add(fp); Expressions.Add(new AssignExpression { Destination = classMember, Source = fp }); }
public void ParseClasses() { Classes = new Class[classDescriptors.Length]; for (uint m = 0; m < Classes.Length; ++m) { Classes[m] = new Class(); } int memberId = 0; for (uint i = 0; i < Classes.Length; ++i) { var c = classDescriptors[i]; var cls = Classes[i]; cls.name = ReadString((int)c.nameOffset); if (c.baseClassID < 0) { cls.baseClass = new ExternalClass(); } else if (c.baseClassID > 0) { cls.baseClass = Classes[c.baseClassID - 1]; } for (uint m = 0; m < c.classDataMemberCount; ++m) { var d = classMemberDescriptors[memberId++]; ClassMember mem = new ClassMember(); mem.size = d.sizeInBytes; mem.fixedArraySize = d.fixedArraySize; mem.flags = d.flags; mem.offset = d.valueOffset; mem.name = ReadString((int)d.nameOffset); Console.WriteLine("Member type ID: " + d.typeID); if (d.typeID >= Types.Length) { mem.fieldType = Classes[(int)d.typeID - Types.Length - 1]; } else { mem.fieldType = Types[(int)d.typeID]; } cls.members.Add(mem); } } }
public void ReplaseMethodBody(ClassMember.Function function, string text) { var h = GetHelper(function.BodyCloseTokenLocation.FileIndex); var xx = h.Source.GetText(); var closeBrecket = h.Source.GetText(function.BodyCloseTokenLocation.ToTextSpan()); if (closeBrecket != "}") { System.Windows.Forms.MessageBox.Show("Internal Nemerle WinForms Designer Error!"); throw new ArgumentException("closeBrecket != \"}\""); } Add(function.Location, function.BodyInnerLocation, text); }
public void SingleProperty_SingleBuilderProperty() { // Arrange var property = new ClassMember("string", "Property"); var analysisResult = new AnalysisResult("ClassName", new[] { property }); // Act var builderModel = _builderModelCreator.Create(analysisResult); // Assert Assert.NotNull(builderModel); Assert.Single(builderModel.Properties); }
public ObjectPropertyAtom(IObjectInstance objectInstance, ClassMember classProperty) : base(objectInstance, classProperty) { if (ClassProperty.CanRead) { // When the property is out of date, update it from the wrapped object. _depProperty = new Dependent(() => BindingInterceptor.Current.UpdateValue(this)); // When the property becomes out of date, trigger an update. // The update should have lower priority than user input & drawing, // to ensure that the app doesn't lock up in case a large model is // being updated outside the UI (e.g. via timers or the network). _depProperty.Invalidated += () => UpdateScheduler.ScheduleUpdate(this); } }
public EntityClass(EntityConstraintsClass eConsts, string module) { EntityConstraints = eConsts; Name = eConsts.TableName.ToPascalCase() + "Entity"; Package = $@"havelsan.kovan.{module}.service.entity"; BaseClass = PredefinedClasses.HvlEntity; Annotations.Add(Entity()); Annotations.Add(Table() .SetParameter("name", eConsts.TableNameRef) .SetParameter("schema", eConsts.TableSchema) .SetParameter("indexes", eConsts.UniqueConstraintsRef.Select(u => Index() .SetParameter("name", u.Name) .SetParameter("unique", true) .SetParameter("columnList", u.ColumnList)).ToList() )); IfPresent(eConsts.TableSequenceRef, ts => Annotations.Add(HvlEntitySequence().SetParameter("name", ts))); ClassMembers.AddRange(eConsts.Table.Columns.Select(col => { var cm = new ClassMember(col.Name.ToCamelCase(), col.Type.ToJavaType(), null, AccessModifier.Private); cm.Annotations.Add(Column().SetParameter("name", eConsts.GetColumnName(col))); cm.Annotations.AddIfTrue(!col.Nullable, NotNull()); IfPresent(col.Size, size => { if (cm.Type.BaseClass == PredefinedClasses.JavaNumber) { var da = Digits(); size.Max.IfPresent(max => da.SetParameter("integer", eConsts.GetColumnSizeMax(col))); size.Min.IfPresent(min => da.SetParameter("fraction", eConsts.GetColumnSizeMin(col))); cm.Annotations.Add(da); } else { var sa = Size(); size.Min.IfPresent(min => sa.SetParameter("min", eConsts.GetColumnSizeMin(col))); size.Max.IfPresent(max => sa.SetParameter("max", eConsts.GetColumnSizeMax(col))); cm.Annotations.Add(sa); } }); return(cm); })); }
private uint GetAttributes(ClassMember classMember) { uint attr = (uint)DROPDOWNFONTATTR.FONTATTR_PLAIN; //TODO: Implement it if (classMember == null) { return(attr); } if ((classMember.Attributes & NemerleModifiers.Static) != 0) { attr |= (uint)DROPDOWNFONTATTR.FONTATTR_ITALIC; } return(attr); }
public void SinglePropertyWithTypeString_BuilderPropertyTypeAsExpected() { // Arrange var property = new ClassMember("string", "Property"); var analysisResult = new AnalysisResult("ClassName", new[] { property }); // Act var builderModel = _builderModelCreator.Create(analysisResult); // Assert Assert.NotNull(builderModel); var builderProperty = Assert.Single(builderModel.Properties); Assert.Equal("string", builderProperty.Type); }
public object GetValue(object instance, ClassMember member) { if (instance is ASObject) { ASObject aso = instance as ASObject; if (aso.ContainsKey(member.Name)) { return(aso[member.Name]); } throw new Exception(string.Format("Member:{0} not found in ASObject", member.Name)); } throw new Exception("GetValue instance is not ASObject"); }
internal ClassDefinition ReadClassDefinition(int handle) { ClassDefinition classDefinition = null; //an inline object bool inlineClassDef = ((handle & 1) != 0); handle = handle >> 1; if (inlineClassDef) { //inline class-def string typeIdentifier = ReadAMF3String(); //flags that identify the way the object is serialized/deserialized bool externalizable = ((handle & 1) != 0); handle = handle >> 1; bool dynamic = ((handle & 1) != 0); handle = handle >> 1; ClassMember[] members = new ClassMember[handle]; for (int i = 0; i < handle; i++) { string name = ReadAMF3String(); ClassMember classMember = new ClassMember(name, BindingFlags.Default, MemberTypes.Custom, null); members[i] = classMember; } classDefinition = new ClassDefinition(typeIdentifier, members, externalizable, dynamic); AddClassReference(classDefinition); } else { //A reference to a previously passed class-def classDefinition = ReadClassReference(handle); } #if !SILVERLIGHT if (log.IsDebugEnabled) { if (classDefinition.IsTypedObject) { log.Debug(__Res.GetString(__Res.ClassDefinition_Loaded, classDefinition.ClassName)); } else { log.Debug(__Res.GetString(__Res.ClassDefinition_LoadedUntyped)); } } #endif return(classDefinition); }
public void SingleProperty_BuilderPropertyParameterNameAsExpected( string propertyName, string parameterName) { // Arrange var property = new ClassMember("string", propertyName); var analysisResult = new AnalysisResult("ClassName", new[] { property }); // Act var builderModel = _builderModelCreator.Create(analysisResult); // Assert Assert.NotNull(builderModel); var builderProperty = Assert.Single(builderModel.Properties); Assert.Equal(parameterName, builderProperty.ParameterName); }
/* * IEnumerator, coroutine Linq is difficult, study agains * */ // Use this for initialization void Start() { ClassMember.Hoge (); ClassMember cm = new ClassMember (); cm.Mage (); StaticClass.Hoge (); SealedClass sc = new SealedClass (); sc.canExtended (); ExtendSealedClass esc = new ExtendSealedClass (); esc.canExtended (); ShowStruction ss = new ShowStruction (1, 2); Debug.Log (ss.x); TestBoxConvert (); // ShowCast show_cast = new ShowCast (); // show_cast.Main (); TestDelegate (); }
public ClassMemberIndependent(ClassMember independent) : base(independent.Name, UnwrapType(independent.UnderlyingType), independent.ComponentType) { _independent = independent; _valueProperty = independent.UnderlyingType.GetProperty("Value"); }
public ClassMemberCommand(MethodInfo method, ClassMember condition, Type objectInstanceType) : base(method.Name, typeof(ObjectPropertyCommand), objectInstanceType) { ExecuteMethod = method; CanExecuteProperty = condition; }
public override ClassDefinition GetClassDefinition(object instance) { ClassDefinition classDefinition = null; Type type = instance.GetType(); //Verify [DataContract] or [Serializable] on type bool serializable = IsDataContract(type) || type.IsSerializable; if (!serializable && type.Assembly != typeof(AMFWriter).Assembly) throw new FluorineException(string.Format("Type {0} was not marked as a data contract.", type.FullName)); List<string> memberNames = new List<string>(); List<ClassMember> classMemberList = new List<ClassMember>(); PropertyInfo[] propertyInfos = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); for (int i = 0; i < propertyInfos.Length; i++) { PropertyInfo propertyInfo = propertyInfos[i] as PropertyInfo; string name = propertyInfo.Name; if (propertyInfo.GetCustomAttributes(typeof(TransientAttribute), true).Length > 0) continue; if (propertyInfo.GetGetMethod() == null || propertyInfo.GetGetMethod().GetParameters().Length > 0) { //The gateway will not be able to access this property string msg = __Res.GetString(__Res.Reflection_PropertyIndexFail, string.Format("{0}.{1}", type.FullName, propertyInfo.Name)); if (log.IsWarnEnabled) log.Warn(msg); continue; } object[] customAttributes = propertyInfo.GetCustomAttributes(typeof(System.Runtime.Serialization.DataMemberAttribute), false); if ((customAttributes != null) && (customAttributes.Length > 0)) { System.Runtime.Serialization.DataMemberAttribute attribute = (System.Runtime.Serialization.DataMemberAttribute)customAttributes[0]; if (attribute.Name != null && attribute.Name.Length != 0) name = attribute.Name; } else { if (!type.IsSerializable && type.Assembly != typeof(AMFWriter).Assembly) continue; } if (memberNames.Contains(name)) continue; memberNames.Add(name); BindingFlags bf = BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance; try { PropertyInfo propertyInfoTmp = type.GetProperty(name); } catch (AmbiguousMatchException) { bf = BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.Public | BindingFlags.Instance; } object[] attributes = propertyInfo.GetCustomAttributes(false); ClassMember classMember = new ClassMember(name, bf, propertyInfo.MemberType, attributes); classMemberList.Add(classMember); } FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Instance); for (int i = 0; i < fieldInfos.Length; i++) { FieldInfo fieldInfo = fieldInfos[i] as FieldInfo; if (fieldInfo.GetCustomAttributes(typeof(NonSerializedAttribute), true).Length > 0) continue; if (fieldInfo.GetCustomAttributes(typeof(TransientAttribute), true).Length > 0) continue; string name = fieldInfo.Name; object[] customAttributes = fieldInfo.GetCustomAttributes(typeof(System.Runtime.Serialization.DataMemberAttribute), false); if ((customAttributes != null) && (customAttributes.Length > 0)) { System.Runtime.Serialization.DataMemberAttribute attribute = (System.Runtime.Serialization.DataMemberAttribute)customAttributes[0]; if (attribute.Name != null && attribute.Name.Length != 0) name = attribute.Name; } else { if (!type.IsSerializable && type.Assembly != typeof(AMFWriter).Assembly) continue; } object[] attributes = fieldInfo.GetCustomAttributes(false); ClassMember classMember = new ClassMember(name, BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance, fieldInfo.MemberType, attributes); classMemberList.Add(classMember); } ClassMember[] classMembers = classMemberList.ToArray(); string customClassName = type.FullName; customClassName = FluorineConfiguration.Instance.GetCustomClass(customClassName); classDefinition = new ClassDefinition(customClassName, classMembers, GetIsExternalizable(instance), GetIsDynamic(instance)); return classDefinition; }
public ObjectPropertyAtomObject(IObjectInstance objectInstance, ClassMember classProperty) : base(objectInstance, classProperty) { }
private uint GetAttributes(ClassMember classMember) { uint attr = (uint)DROPDOWNFONTATTR.FONTATTR_PLAIN; //TODO: Implement it if (classMember == null) return attr; if ((classMember.Attributes & NemerleModifiers.Static) != 0) attr |= (uint)DROPDOWNFONTATTR.FONTATTR_ITALIC; return attr; }
public static ObjectProperty From(IObjectInstance objectInstance, ClassMember classProperty) { return classProperty.MakeObjectProperty(objectInstance); }
internal void RemoveField(ClassMember.Field field) { var memLoc = field.Location; var helper = GetHelper(memLoc.FileIndex); var source = helper.Source; var firstLineText = source.GetLine(memLoc.Line); var prefix = firstLineText.Substring(0, memLoc.Column - 1); int endLine = memLoc.EndLine; int endCol = memLoc.EndColumn; var startCol = IsAllCharsIsSpaces(prefix) ? 1 : memLoc.Column; var endLineText = source.GetLine(memLoc.EndLine); var x = endCol - 1; var sufix = endLineText.Substring(x, endLineText.Length - x); var lineCount = source.LineCount; var startLine = memLoc.Line; // Коамилятор не всегда учитывает точку с запятой в местоположении выражения. // Компенсируем эту проблему удаляя точку с запятой из начала строки. if (sufix.StartsWith(";", StringComparison.InvariantCulture)) { sufix = sufix.Substring(1); endCol++; } // Если в конце строки нет других выражений, то продлеваем локешон до начала // следующей строки и удаляем все пустые строки идущие за данной строкой. while (endLine + 1 < lineCount && IsAllCharsIsSpaces(sufix)) { endLine++; endCol = 1; sufix = source.GetLine(endLine); } var delLoc = new Location(memLoc.FileIndex, startLine, startCol, endLine, endCol); helper.Add(delLoc, ""); }
public ObjectPropertyCollectionNative(IObjectInstance objectInstance, ClassMember classProperty) : base(objectInstance, classProperty) { }
private string GetLable(ClassMember classMember) { if (classMember == null) return ""; return classMember.GetLabel(); }
public ObjectProperty(IObjectInstance objectInstance, ClassMember classProperty) { ObjectInstance = objectInstance; ClassProperty = classProperty; }