This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

VirtualFile.Open أسلوب

Visual Studio 2010

عند تجاوز في فئة مشتقة، يعود للقراءة فقط دفق إلى مورد ظاهري.

مساحة الاسم:  System.Web.Hosting
التجميع:  System.Web (في System.Web.dll)

public abstract Stream Open()

القيمة المُرجعة

النوع: System.IO.Stream
أ للقراءة فقط دفق الملف الظاهري.

The Open أسلوب إرجاع a stream containing the بيانات treated كـ a ملف بواسطة the VirtualPathProvider فئة. The stream هو read-فقط, و can be seekable.

ملاحظات للمسئولين عن الإرث

The Open أسلوب ليس مطلوب إلى return a seekable stream.

مثال التعليمة البرمجية التالية هو تطبيق Openالطريقة التي تضم ظاهري ملف-معلومات خاصة بملف قالب وثم تقوم بإرجاع مجموعة. ملف القالب هو المخزنة مؤقتاً لتقليل مقدار الحمل لقراءة ملف النظام عدة مرة/مرات باسترداد ملف القالب. للتعليمات البرمجية الكاملة المطلوبة إلى تشغيل المثال، راجع مقطع مثال VirtualFileفئة النظرة العامة.


private string FormatTimeStamp(DateTime time)
{
  return String.Format("{0} at {1}",
    time.ToLongDateString(), time.ToLongTimeString());
}

public override Stream Open()
{
  string templateFile = HostingEnvironment.ApplicationPhysicalPath + "App_Data\\template.txt";
  string pageTemplate;
  DateTime now = DateTime.Now;

  // Try to get the page template out of the cache.
  pageTemplate = (string)HostingEnvironment.Cache.Get("pageTemplate");

  if (pageTemplate == null)
  {
    // Get the page template.
    using (StreamReader reader = new StreamReader(templateFile))
    {
      pageTemplate = reader.ReadToEnd();
    }

    // Set template timestamp
    pageTemplate = pageTemplate.Replace("%templateTimestamp%", 
      FormatTimeStamp(now));

    // Make pageTemplate dependent on the template file.
    CacheDependency cd = new CacheDependency(templateFile);

    // Put pageTemplate into cache for maximum of 20 minutes.
    HostingEnvironment.Cache.Add("pageTemplate", pageTemplate, cd,
      Cache.NoAbsoluteExpiration,
      new TimeSpan(0, 20, 0),
      CacheItemPriority.Default, null);
  }

  // Put the page data into the template.
  pageTemplate = pageTemplate.Replace("%file%", this.Name);
  pageTemplate = pageTemplate.Replace("%content%", content);

  // Get the data time stamp from the cache.
  DateTime dataTimeStamp = (DateTime)HostingEnvironment.Cache.Get("dataTimeStamp");
  pageTemplate = pageTemplate.Replace("%dataTimestamp%", 
    FormatTimeStamp(dataTimeStamp));
  pageTemplate = pageTemplate.Replace("%pageTimestamp%", 
    FormatTimeStamp(now));

  // Put the page content on the stream.
  Stream stream = new MemoryStream();
  StreamWriter writer = new StreamWriter(stream);

  writer.Write(pageTemplate);
  writer.Flush();
  stream.Seek(0, SeekOrigin.Begin);

  return stream;
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: