WEB开发网
开发学院软件开发C语言 C#发现之旅:于动态编译的VB.NET脚本引擎(上) 阅读

C#发现之旅:于动态编译的VB.NET脚本引擎(上)

 2010-09-30 21:08:18 来源:WEB开发网   
核心提示: 根据上述对运行时脚本的设计,用户可以导入其他的名称空间,C#发现之旅:于动态编译的VB.NET脚本引擎(上)(8),于是脚本引擎定义了SourceImports属性来自定义导入的名称空间,定义该属性的代码如下///<summary>///源代码中使用的名称空间导入///</su

根据上述对运行时脚本的设计,用户可以导入其他的名称空间,于是脚本引擎定义了SourceImports属性来自定义导入的名称空间,定义该属性的代码如下

/// <summary>
/// 源代码中使用的名称空间导入
/// </summary>
private StringCollection mySourceImports = new StringCollection();
/// <summary>
/// 源代码中使用的名称空间导入
/// </summary>
public StringCollection SourceImports
{
    get
    {
        return mySourceImports;
    }
}

在脚本引擎的初始化过程中,程序会默认添加上System和Microsoft.VisualBasic两个名称空间。随后程序使用以下代码来生成实际参与编辑的脚本代码文本

// 生成编译用的完整的VB源代码
string ModuleName = "mdlXVBAScriptEngine";
string nsName = "NameSpaceXVBAScriptEngien";
System.Text.StringBuilder mySource = new System.Text.StringBuilder();
mySource.Append("Option Strict Off");
foreach (string import in this.mySourceImports)
{
    mySource.Append(""r"nImports " + import);
}
mySource.Append(""r"nNamespace " + nsName);
mySource.Append(""r"nModule " + ModuleName);
mySource.Append(""r"n");
mySource.Append(this.strScriptText);
mySource.Append(""r"nEnd Module");
mySource.Append(""r"nEnd Namespace");
string strRuntimeSource = mySource.ToString();

上一页  3 4 5 6 7 8 9 10  下一页

Tags:发现 之旅 动态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接