Làm cách nào để tải tài nguyên được nhúng dưới dạng bản đồ ITemplate? Phương thức LoadTemplate() chỉ nhận một đường dẫn ảo chuỗi, và rõ ràng điều này sẽ không hoạt động với các tài nguyên nhúng.Tải mẫu từ tài nguyên được nhúng
Trả lời
Giả sử rằng các mẫu của bạn được nhúng và cần phải theo cách đó (mà tôi nghĩ bạn có thể muốn xem xét lại), đây là một hàm tôi đã viết một thời gian trước. phần lớn tệp .sql). Nó chuyển đổi một tài nguyên nhúng thành một chuỗi. Sau đó bạn có thể cần phải viết mẫu của bạn ra đĩa.
public static string GetEmbeddedResourceText(string resourceName, Assembly resourceAssembly)
{
using (Stream stream = resourceAssembly.GetManifestResourceStream(resourceName))
{
int streamLength = (int)stream.Length;
byte[] data = new byte[streamLength];
stream.Read(data, 0, streamLength);
// lets remove the UTF8 file header if there is one:
if ((data[0] == 0xEF) && (data[1] == 0xBB) && (data[2] == 0xBF))
{
byte[] scrubbedData = new byte[data.Length - 3];
Array.Copy(data, 3, scrubbedData, 0, scrubbedData.Length);
data = scrubbedData;
}
return System.Text.Encoding.UTF8.GetString(data);
}
}
sử dụng Ví dụ:
var text = GetEmbeddedResourceText("Namespace.ResourceFileName.txt",
Assembly.GetExecutingAssembly());
Tôi muốn mẫu được nhúng vì nó được sử dụng làm mẫu mặc định cho điều khiển và là một phần của một kiểu cụ thể. – MadSkunk
kiểm soát của bạn sẽ giống như nó:
public class Con : Control
{
public Template Content { get; set; }
protected override void CreateChildControls()
{
base.CreateChildControls();
Content = new Template();
// load controls from file and add to this control
Content.InstantiateIn(this);
}
public class Template : ITemplate
{
public void InstantiateIn(Control container)
{
// load controls
container.Controls.Add((HttpContext.Current.Handler as Page).LoadControl("Emb.ascx"));
}
}
}
Sau đó, các tập tin nhúng:
<%@ Control Language="C#" %>
<asp:TextBox ID="Tb" runat="server" />
Sau đó, khi sử dụng điều khiển nó sẽ tải các tài nguyên nhúng, vì vậy sử dụng:
<%@ Register Assembly="TestWeb" Namespace="TestWeb" TagPrefix="c" %>
<c:Con runat="server" />
Sẽ tạo một TextBox.
Nếu bạn đang cố gắng truy cập tệp trong DLL, see this implementation of VirtualPathProvider.
- 1. Tải một bộ phận từ một tài nguyên được nhúng
- 2. Tải một XML từ Tài nguyên
- 3. Tên nhúng tài nguyên
- 4. Tự động tải báo cáo tài nguyên nhúng bằng Microsoft.Reporting.WinForms
- 5. Tài nguyên JPG nhúng không tải trong ứng dụng Qt
- 6. Cách tải HTML/JavaScript từ tài nguyên nhúng vào trình duyệt web winform
- 7. Làm thế nào để sử dụng tải DLL từ Tài nguyên Nhúng?
- 8. được nhúng tài nguyên trong một dự án khác
- 9. Tệp cấu hình dưới dạng tài nguyên được nhúng
- 10. .NET: Mở tệp, được nhúng vào tệp tài nguyên
- 11. Nhúng một dll vào một tài nguyên khác dưới dạng tài nguyên được nhúng và sau đó gọi nó từ mã của tôi
- 12. Làm cách nào để có được BitmapImage từ Tài nguyên?
- 13. Plugin nguyên mẫu Maven không cho phép. Tài nguyên trong các tài nguyên mẫu thông qua
- 14. Tải Tài nguyên bằng chuỗi
- 15. xoá tài liệu được nhúng với mongoid
- 16. iPhone dev: tải tệp từ thư mục tài nguyên
- 17. Cách tải biểu tượng từ tài nguyên trong Java?
- 18. Đang tải kiểu WPF từ Tệp tài nguyên
- 19. Thêm và truy xuất tài nguyên nhúng codedom
- 20. Sự khác biệt giữa Tài nguyên và Tài nguyên được nhúng trong ứng dụng C# là gì?
- 21. Sử dụng VirtualPathProvider tùy chỉnh để tải tài nguyên nhúng Một phần Chế độ xem
- 22. Làm thế nào để nhúng phiên bản dự án nguyên mẫu trong nguyên mẫu Maven?
- 23. Tìm tất cả các tài nguyên được nhúng trong một assembly khác
- 24. Làm cách nào để kiểm tra xem tài nguyên được nhúng có tồn tại hay không?
- 25. Làm cách nào để tạo biểu mẫu lồng nhau bằng tài nguyên được nhúng Mongoid trong Rails 3?
- 26. Khi sử dụng ResXResourceReader làm cách nào để biết tài nguyên có phải là tệp được nhúng hay là một chuỗi được nhúng
- 27. Làm cách nào để khám phá "đường dẫn" của tài nguyên được nhúng?
- 28. Điều kiện nhúng tài nguyên trong Visual Studio (C#)
- 29. Tải tài nguyên Android vào một WebView
- 30. Nhúng tài nguyên vào một dự án C++/CLI
Ông có thể giải thích nơi 'ITemplate' đến từ đâu? – JaredPar
@JaredPar, asp.net - Tôi đã sửa đổi để bao gồm thẻ. –
Mọi tệp đều có đường dẫn. Bạn đang cố truy cập một tệp bên trong một DLL? – BrunoLM