TestDataColumn.cs 983 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Reflection;
  4. using System.Text;
  5. using MonoTests.DataSource;
  6. using MonoTests.ModelProviders;
  7. namespace MonoTests.Common
  8. {
  9. public class TestDataColumn <DataType> : DynamicDataColumn
  10. {
  11. public TestDataColumn (MemberInfo member)
  12. {
  13. if (member == null)
  14. throw new ArgumentNullException ("member");
  15. string name = this.Name = member.Name;
  16. switch (member.MemberType) {
  17. case MemberTypes.Field:
  18. var fi = member as FieldInfo;
  19. this.DataType = fi.FieldType;
  20. break;
  21. case MemberTypes.Property:
  22. var pi = member as PropertyInfo;
  23. this.DataType = pi.PropertyType;
  24. break;
  25. default:
  26. throw new ArgumentException ("Member information must refer to either a field or a property.", "member");
  27. }
  28. this.PrimaryKey = name.StartsWith ("PrimaryKeyColumn", StringComparison.Ordinal);
  29. this.ForeignKey = name.StartsWith ("ForeignKeyColumn", StringComparison.Ordinal);
  30. }
  31. }
  32. }