.net - Vấn đề TypeLite với generics và Enums?
Vậy là tôi có rất nhiều thư viện/lớp .Net mà tôi muốn tạo định nghĩa TypeScript cho chúng. TypeScript thật tuyệt! Tôi đã thử nó với các ví dụ đơn giản và nó hoạt động hoàn hảo. Vấn đề duy nhất mà tôi đang gặp phải là một sự kết hợp mà tôi có không hoạt động với nó. Đây là cách mà nó không hoạt động:
[TsClass]
public class Bob<T>
{
public MyTestEnum MyEnum { get; set; }
public string TestString { get; set; }
public string MyProperty { get; set; }
}
[TsEnum]
public enum MyTestEnum
{
One,
Two,
Three
}
Vấn đề là tôi không thể kết hợp generic <T> và Enum ở cùng một chỗ. Để nó hoạt động, tôi cần loại bỏ một trong hai.
Đây là lỗi mà nó hiển thị cho tôi khi tôi chạy:
Error 17 Running transformation: System.NullReferenceException: Object reference not set to an instance of an object.
at TypeLite.TsModelBuilder.AddEnum(TsEnum tsEnum) in C:\___PROJECTS___\TypeLITE\TypeLite\TsModelBuilder.cs:line 98
at TypeLite.TsModelBuilder.Add(Type clrType, Boolean includeReferences) in C:\___PROJECTS___\TypeLITE\TypeLite\TsModelBuilder.cs:line 83
at TypeLite.TsModelBuilder.Add(Assembly assembly) in C:\___PROJECTS___\TypeLITE\TypeLite\TsModelBuilder.cs:line 108
at TypeLite.Net4.TypeScriptFluentExtensions.ForLoadedAssemblies(TypeScriptFluent ts) in C:\___PROJECTS___\TypeLITE\TypeLite.Net4\TypeScriptFluentExtensions.cs:line 16
at Microsoft.VisualStudio.TextTemplatingBDE10CD05B2CB4C5419DB79DDF5BA5BA06D673F55FF952439E5971D4E1F394085E3B6D99DC6D1E992221FAC06D0692FFD83BE54FE5AF6A567A491DF31AE26472.GeneratedTextTransformation.TransformText() ..\Scripts\TypeLite.Net4.tt
Việc tôi không làm gì với generics không liên quan (tôi chỉ đang cố làm cho nó hoạt động!)
Tôi sẽ rất biết ơn nếu bạn biết một giải pháp thay thế hoặc nếu bạn có thể giới thiệu một tiện ích khác tương tự nó có khả năng làm được điều đó.
Tôi đã báo cáo vấn đề này với các nhà phát triển (hy vọng Lukas sẽ giải quyết nó sớm): https://bitbucket.org/LukasKabrt/typelite/issue/41/issue-with-generics-and-enums
Câu trả lời #1
Nhờ Paul O'Neill, lỗi này đã được sửa trong phiên bản mới nhất (0.9.1.8)