CustomNamed.cs 1.8 KB

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