Tôi có định nghĩa enum trong một mô-đun (A), ví dụ: THÀNH CÔNG = 0, INVALID_REQ = 1 vv Sau đó, tôi có một dll (mô-đun B) trong đó có tập hợp riêng của nó về tình trạng enum. Khi chúng ta thêm một giá trị enum mới trong A, chúng ta phải tự thêm nó vào B vì A nằm trong .NET và B là mã C. Bên cạnh đó, enum trong A chỉ là một phần của trạng thái enum trong B (B có trạng thái bên trong riêng của nó bên cạnh trạng thái từ A). Điều này có vẻ là một sự kết nối rất chặt chẽ giữa hai mô-đun này. Bất kỳ đề xuất để làm cho chúng ít hơn? Thx!Chuyển đổi Enum giữa các mô-đun
Trả lời
Tại sao không viết một tập lệnh đơn giản tạo ra các enums này dựa trên một tệp trong khi xây dựng? Nếu bạn thực sự muốn tách chúng ra, bạn sẽ cần phải biến ai đó thành thạo và phơi bày nội dung của nó sang phía bên kia .. Có thể sử dụng RCW ..
* ho * IDL COM? * ho * –
:) Đó không phải là kết thúc của thế giới để viết .. :) – gbvb
Điều gì sẽ là thú vị khi sử dụng sự phản chiếu ở đây. Viết một chương trình nhỏ đọc enum bằng cách phản chiếu từ mô-đun A và tạo tệp .h để sử dụng trong mô-đun c.
- 1. Chuyển đổi sang Enum
- 2. Chuyển đổi enum để int
- 3. Chuyển đổi chuỗi thành Enum?
- 4. String để chuyển đổi enum trong C#
- 5. Chuyển đổi Enum vào loại cơ bản
- 6. chuỗi Generic để enum chuyển đổi
- 7. Chuyển đổi đối tượng thành enum C#
- 8. ISSUE: Mysql chuyển đổi Enum thành Int
- 9. Chuyển đổi giữa các ô trong JavaFX
- 10. Chuyển đổi giữa các loại trong Haskell
- 11. Enum như tham số chuyển đổi trong PowerShell
- 12. Làm thế nào để chuyển đổi một enum thành enum khác trong java?
- 13. Làm cách nào để chuyển đổi IEnumerable <Enum> thành Enum trong C#?
- 14. Chuyển đổi một Integer để Enum trong PostgreSQL
- 15. Hibernate aliasToBean không chuyển đổi chuỗi thành Enum
- 16. Enum Class "không thể chuyển đổi sang unsigned int"
- 17. Chuyển đổi chuỗi mảng để enum on the fly
- 18. Sử dụng loại enum trong câu lệnh chuyển đổi
- 19. Chuyển qua enum trong Freemarker
- 20. tham chiếu enum trong trường hợp chuyển đổi
- 21. Làm thế nào để chuyển đổi typedef enum sang NSNumber?
- 22. Chuyển đổi chuỗi thành giá trị Enum tương đương
- 23. Chuyển đổi giữa các Phân đoạn trong một Hoạt động
- 24. Sự khác nhau giữa các chuỗi chuyển đổi
- 25. Android: chuyển đổi giữa các chuỗi, SpannedStrings và Spannablestrings
- 26. Phiên bản phụ và chuyển đổi giữa các thẻ
- 27. Team Foundation Server chuyển đổi giữa các chi nhánh
- 28. Chuyển đổi giữa các cửa sổ đang mở trong Pharo
- 29. Chuyển đổi giữa các div trong div khác bằng jQuery?
- 30. Chuyển các giá trị enum vào một hàm trong PowerShell
Vấn đề lớn nhất ở đây là không giữ hai đồng bộ (mặc dù đó là một vấn đề), nhưng thực tế là enum trong B có nghĩa là một cái gì đó khác với enum trong A. Bây giờ bạn mở ra khả năng muốn thêm một phần tử mới vào A, nhưng đột nhiên nó mâu thuẫn với một giá trị bên trong đang được sử dụng bởi B. Nếu bạn cần sao chép các giá trị cho mục đích của khả năng tương tác, sử dụng nó _only_ cho khả năng tương tác và quản lý trạng thái nội bộ riêng biệt. –
Có một * hợp đồng ngầm * đang diễn ra ở đây. Hãy tưởng tượng HTTP2 thêm một động từ mới nói, [JABBERWOCKY] (http://www.jabberwocky.com/carroll/jabber/jabberwocky.html). Tất cả các máy khách/máy chủ HTTP2 cần phải được mã hóa với kiến thức về hợp đồng này. Sử dụng các phiên bản [giao thức] rõ ràng, có lẽ với bảo vệ và [tương thích xuống] (http://en.wikipedia.org/wiki/Backward_compatibility), có thể hữu ích để nắm bắt và/hoặc giảm thiểu sự không phù hợp. Có công cụ để giúp chia sẻ thông tin về hợp đồng - hãy tưởng tượng [COM IDL] (http://en.wikipedia.org/wiki/Component_Object_Model) hoặc các máy phát điện khác. –
@Dan: Tôi đang suy nghĩ sử dụng các giá trị enum trong A và xác định const trong B bắt đầu từ 100 (0-99 từ A). Sau đó, sử dụng số nguyên thay vì enum làm giao diện của B. Cả trạng thái A và B đều có thể bị lộ ra khỏi giao diện của B và không phải lo lắng A và B can thiệp lẫn nhau. – Icerman