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.

BuildProvider.GenerateCode أسلوب

Visual Studio 2010

قم بإنشاء تعليمات برمجية المصدر للمسار الظاهري للإنشاء موفر، وقم بإضافة تعليمات برمجية المصدر إلى منشيء تجميع محدد.

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

public virtual void GenerateCode(
	AssemblyBuilder assemblyBuilder
)

المعلمات

assemblyBuilder
النوع: System.Web.Compilation.AssemblyBuilder
منشيء تجميع تشير إلى تعليمات برمجية المصدر التي تم إنشاؤها بواسطة الإنشاء موفر.

إلى تطبيق موفر بناء الذي يقوم بإنشاء تعليمات برمجية المصدر لنوع ملف cusإلىm، اشتقاق فئة من BuildProviderللفئات، وتجاوز GenerateCodeأسلوب إلى إنشاء تعليمات برمجية المصدر لنوع الملفات المعتمدة.

أحد موفري البناء بشكل عام، GenerateCodeالقراءات التنفيذ VirtualPathيوزع المحتويات خاصية، وقم بإضافة تعليمات برمجية المصدر الذي تم إنشاؤه إلى الفرعي AssemblyBuilderالكائن. يمكنك المساهمة في تعليمات برمجية المصدر إلى التجميع في الشكل TextWriterالكائن أو الرسم البياني CodeDOM. إلى إضافة مصدر تعليمات برمجية للتجميع من خلال TextWriterالكائن، استخدم CreateCodeFileالأسلوب. إلى قم بإضافة تعليمات برمجية المصدر في رسم بياني CodeDOM إلى التجميع، استخدام AddCodeCompileUnitالأسلوب.

في حالة بنية الموفر بنية تعليمات برمجية المصدر في لغة برمجة معينة، يجب يمنع CodeCompilerTypeخاصية إلى العودة CompilerTypeالكائن المعتمدة لغة البرمجة.

The following تعليمات برمجية مثال illustrates a simple بنية موفر implementation, inheriting من the abstract BuildProvider فئة الأساس. The بنية موفر overrides the CodeCompilerType, GetGeneratedType, و GenerateCode الأعضاء of the فئة الأساس.


using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Compilation;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.Security;
using System.Security.Permissions;

// Define a simple build provider implementation.
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
public class SampleBuildProvider : BuildProvider
{
    // Define an internal member for the compiler type.
    protected CompilerType _compilerType = null;

    public SampleBuildProvider()
    {
        _compilerType = GetDefaultCompilerTypeForLanguage("C#");
    }

    // Return the internal CompilerType member 
    // defined in this implementation.
    public override CompilerType CodeCompilerType
    {
        get { return _compilerType; }
    }


    // Define the build provider implementation of the GenerateCode method.
    public override void GenerateCode(AssemblyBuilder assemBuilder)
    {
        // Generate a code compile unit, and add it to
        // the assembly builder.

        TextWriter tw = assemBuilder.CreateCodeFile(this);
        if (tw != null)
        {
            try
            {
                // Generate the code compile unit from the virtual path.
                CodeCompileUnit compileUnit = SampleClassGenerator.BuildCompileUnitFromPath(VirtualPath);

                // Generate the source for the code compile unit, 
                // and write it to a file specified by the assembly builder.
                CodeDomProvider provider = assemBuilder.CodeDomProvider;
                provider.GenerateCodeFromCompileUnit(compileUnit, tw, null);
            }
            finally
            {
                tw.Close();
            }
        }
    }

    public override System.Type GetGeneratedType(CompilerResults results)
    {
        string typeName = SampleClassGenerator.TypeName;

        return results.CompiledAssembly.GetType(typeName);
    }
}


نظام التشغيل 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
إظهار: