本文整理汇总了C#中System.CodeDom.Compiler.CodeDomProvider.CheckNullObject方法的典型用法代码示例。如果您正苦于以下问题:C# CodeDomProvider.CheckNullObject方法的具体用法?C# CodeDomProvider.CheckNullObject怎么用?C# CodeDomProvider.CheckNullObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.CodeDom.Compiler.CodeDomProvider
的用法示例。
在下文中一共展示了CodeDomProvider.CheckNullObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDynamicAssembly
/// <summary>
/// Creates the dynamic assembly.
/// </summary>
/// <param name="provider">The provider.</param>
/// <param name="referencedAssemblies">The referenced assemblies.</param>
/// <param name="namespace">The namespace.</param>
/// <param name="usingNameSpaces">The using nameSpaces.</param>
/// <param name="classCodesToCompile">The class codes to compile.</param>
/// <returns>Assembly.</returns>
/// <exception cref="OperationFailureException">CompileAssemblyFromSource;null</exception>
public SandboxAssembly CreateDynamicAssembly(CodeDomProvider provider, List<string> referencedAssemblies, string @namespace, IEnumerable<string> usingNameSpaces, string classCodesToCompile)
{
try
{
provider.CheckNullObject("provider");
classCodesToCompile.CheckEmptyString("classCodesToCompile");
@namespace = @namespace.SafeToString("Beyova.DynamicCompile.Sandbox");
var objCompilerParameters = new CompilerParameters
{
GenerateExecutable = false,
GenerateInMemory = true
};
// Prepare references.
var references = GetCommonAssemblyNameList();
if (referencedAssemblies.HasItem())
{
references.AddRange(referencedAssemblies);
}
objCompilerParameters.ReferencedAssemblies.AddRange(references.ToArray());
// Prepare references done.
// Prepare namespace
var nameSpaces = GetCommonNamespaces();
if (usingNameSpaces.HasItem())
{
nameSpaces.AddRange(usingNameSpaces);
}
// Prepare namespace done;
StringBuilder builder = new StringBuilder(512);
foreach (var one in nameSpaces)
{
builder.AppendLineWithFormat("using {0};", one);
}
builder.AppendLineWithFormat("namespace {0}", @namespace);
//Namespace start
builder.AppendLine("{");
builder.AppendLine(classCodesToCompile);
//End of namespace
builder.Append("}");
var compilerResult = provider.CompileAssemblyFromSource(objCompilerParameters, classCodesToCompile);
if (compilerResult.Errors.HasErrors)
{
List<dynamic> errors = new List<dynamic>();
foreach (CompilerError one in compilerResult.Errors)
{
errors.Add(new
{
one.ErrorText,
one.ErrorNumber,
one.Line
});
}
throw new OperationFailureException("CompileAssemblyFromSource", null, errors);
}
return new SandboxAssembly(compilerResult.CompiledAssembly, @namespace);
}
catch (Exception ex)
{
throw ex.Handle("CreateDynamicAssembly");
}
}