CustomNamed.cs 1.5 KB

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