2010-10-18 14 views
10

Ứng dụng Silverlight có thể (tệp .xap, testpage.html, tài nguyên nội dung bên cạnh một ClientBin, ngoài cài đặt trình duyệt, v.v.) được tạo chỉ sử dụng System.CodeDom từ ứng dụng .NET thông thường? Có nghĩa là tôi có một giao diện điều khiển hoặc ứng dụng winforms tạo ứng dụng Silverlight - điều này có thể thực hiện với System.Codedom không?CodeDom và Silverlight

Tôi đã tìm kiếm cao và thấp và không tìm thấy bất kỳ thông tin nào về điều này.

+0

Ồ, đó là một câu hỏi khá thú vị. Bạn đã thử bất cứ điều gì cho mình chưa? Tôi không thể nghĩ ra lý do tại sao nó sẽ không thể, nhưng tôi không biết chắc chắn. Tôi đoán một điều quan trọng là để đảm bảo rằng các hội đồng được tạo ra tham khảo các phiên bản chính xác của hội đồng nền tảng Silverlight (mscorlib, System.Windows, vv) và không phải là đối tác máy tính để bàn của họ. Một ứng dụng Silverlight không gì khác ngoài một tập hợp các tập hợp và một tệp AppManifest.xaml trong một tệp nén có phần mở rộng .xap. Tôi tò mò về kịch bản dẫn bạn muốn làm điều này là gì? – KeithMahoney

+0

Cảm ơn Keith. Tôi đã nhìn vào MSBuild cho cùng một tùy chọn, nhưng mọi người dường như cho rằng MSBuild là overkill và CodeDom.Compiler là đủ cho các tình huống thường xuyên - Tôi chỉ không biết nếu đó là trường hợp cho Silverlight. Một kịch bản sẽ là một người sáng tạo thẻ eGreeting nơi có tùy biến nặng (tôi biết điều này có thể có một cách tiếp cận khác nhau, nhưng vì lợi ích của sự tranh luận, chúng ta hãy chỉ nói rằng đây là cách nó cần phải được) - một trang web cốt lõi ASP.NET có một loạt các tham số khác nhau từ đầu vào của người dùng và kết quả là một ứng dụng Silverlight được biên dịch. Làm điều này nhiều lần. – Stan

+0

Đối với kịch bản của bạn, tôi khuyên bạn nên thực hiện một phương pháp thay thế, ví dụ: một ứng dụng Silverlight chung tải xuống tất cả dữ liệu tùy chỉnh một cách linh hoạt khi chạy. Nếu bạn quyết định đi con đường tạo mã: Tôi ước tôi có thể trả lời tốt hơn là "không có lý do rõ ràng nào tại sao nó không hoạt động". – KeithMahoney

Trả lời

4

Mặc dù đây sẽ là một thách thức, nó có lẽ là có thể. Nếu bạn nhìn vào những gì khuôn khổ chính nó hiện, có một vài lựa chọn mặc dù.

  • Ví dụ: Regex sử dụng lớp System.Reflection.Emit để biên dịch biểu thức điều chỉnh của bạn;

  • XmlSerializer sử dụng System.CodeDom để tạo cụm để tuần tự hóa và deserializing XML;

  • ASP.Net gọi trình biên dịch C# (csc.exe) để biên dịch các trang ASPX (và tất cả các phần khác của ứng dụng ASP.Net) thành một hội đồng.

Đây là tất cả các tùy chọn để tạo hội đồng hợp lệ, được đặt hàng từ rất phức tạp, tương đối có thể thực hiện được.

Và liên quan đến phần Silverlight của câu hỏi. Điều này chỉ đơn giản là một trường hợp tạo một dự án hợp lệ. Có lẽ cách dễ nhất để thực hiện là tạo dự án Silverlight đơn giản nhất mà bạn có thể nghĩ ra (vì vậy, không có bất kỳ nội dung nào) và cố gắng mô phỏng điều đó bằng một trong ba tùy chọn. Nếu bạn đã có mà chạy, hơn dần dần thêm các bộ phận cho đến khi bạn đã có những gì bạn cần.

Các vấn đề liên quan