CustomNamed.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. namespace Jint.Tests.Runtime.Domain
  2. {
  3. [AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
  4. public class CustomNameAttribute : Attribute
  5. {
  6. public CustomNameAttribute(string name)
  7. {
  8. Name = name;
  9. }
  10. public string Name { get; }
  11. }
  12. public interface ICustomNamed
  13. {
  14. [CustomName("jsInterfaceStringProperty")]
  15. public string InterfaceStringProperty { get; }
  16. [CustomName("jsInterfaceMethod")]
  17. public string InterfaceMethod();
  18. }
  19. [CustomName("jsCustomName")]
  20. public class CustomNamed : ICustomNamed
  21. {
  22. [CustomName("jsStringField")]
  23. [CustomName("jsStringField2")]
  24. public string StringField = "StringField";
  25. [CustomName("jsStaticStringField")]
  26. public static string StaticStringField = "StaticStringField";
  27. [CustomName("jsStringProperty")]
  28. public string StringProperty => "StringProperty";
  29. [CustomName("jsMethod")]
  30. public string Method() => "Method";
  31. [CustomName("jsStaticMethod")]
  32. public static string StaticMethod() => "StaticMethod";
  33. public string InterfaceStringProperty => "InterfaceStringProperty";
  34. public string InterfaceMethod() => "InterfaceMethod";
  35. [CustomName("jsEnumProperty")]
  36. public CustomNamedEnum EnumProperty { get; set; }
  37. }
  38. [CustomName("XmlHttpRequest")]
  39. public enum CustomNamedEnum
  40. {
  41. [CustomName("NONE")]
  42. None = 0,
  43. [CustomName("HEADERS_RECEIVED")]
  44. HeadersReceived = 2
  45. }
  46. public static class CustomNamedExtensions
  47. {
  48. [CustomName("jsExtensionMethod")]
  49. public static string ExtensionMethod(this CustomNamed customNamed) => "ExtensionMethod";
  50. }
  51. }