Tôi đang làm việc trên một dự án tạo ra một hội đồng. Tôi chỉ nhận thấy rằng một hội đồng bổ sung * .XmlSerialulators.dll đang được tạo. Tại sao tập tin này được tạo tự động và nó được sử dụng để làm gì?
Tôi đang làm việc trên một dự án tạo ra một hội đồng. Tôi chỉ nhận thấy rằng một hội đồng bổ sung * .XmlSerialulators.dll đang được tạo. Tại sao tập tin này được tạo tự động và nó được sử dụng để làm gì?
Câu trả lời:
Trong triển khai .NET , XmlSerializer tạo ra một hội đồng tạm thời để tuần tự hóa / giải tuần tự hóa các lớp của bạn (vì lý do hiệu năng). Nó có thể được tạo ra một cách nhanh chóng (nhưng nó cần có thời gian cho mỗi lần thực hiện) hoặc nó có thể được tạo trước trong quá trình biên dịch và được lưu trong phần này mà bạn đang hỏi về.
Bạn có thể thay đổi hành vi này trong các tùy chọn dự án (tab Biên dịch -> Tùy chọn biên dịch nâng cao -> Tạo các cụm nối tiếp , Tự động hoặc Bật , tương ứng). Phần tử tương ứng trong tệp dự án là GenerateSerializationAssemblies , ví dụ , <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
.
Auto
, nhưng chỉ có một dự án tạo ra một DLL tuần tự hóa.
**Generate Serialization Assemblies** Specifies whether the compiler will use the XML Serializer Generator Tool (Sgen.exe) to create XML serialization assemblies. Serialization assemblies can improve the startup performance of XmlSerializer if you have used that class to serialize types in your code. By default, this option is set to Auto, which specifies that serialization assemblies be generated only if you have used XmlSerializer to encode types in your code to XML.
msdn.microsoft.com/en-us/l
FYI. Các bước chính xác để ngăn XmlSerialulators.dll không được tạo tự động là:
Tôi nghĩ rằng đây là phần tổng hợp JIT (Just in time) của các bộ nối tiếp XML vì lý do hiệu năng.
Bạn nhận được điều tương tự với các phiên bản RegEx bằng cách sử dụng tùy chọn RegexOptions.Compiled được bật.
Tôi không phải là chuyên gia .NET CLR, xin lỗi vì thiếu chi tiết kỹ thuật chính xác.
*.XmlSerializers.dll
được tạo bằng Sgen.exe [Công cụ tạo tuần tự XML]
Thông thường, Sgen.exe
được sử dụng trong các sự kiện Post Build của các dự án. Xem dự án của bạn có một sự kiện xây dựng bài tạo ra*.XmlSerializers.dll
Dự án chỉ tạo dự án.XMLSerialisers.dll cho các ứng dụng web. Đối với các ứng dụng khác, bạn phải chạy sgen riêng.