エラーが発生しました:コンストラクタが 'SimpleScript.Generator'型で見つかりません。C#CodeProviderエラー:コンストラクタが型に見つかりません
私は正しいパラメータを渡してみましたが、まだこのエラーが発生しています。これは私のソースコードであり、スクリプトは要素の頭部と体の配列を生成する非常に単純なコードです。また、正常にコンパイルされますが、実行時にエラーがスローされます。
string source = @"
using System;
using MSiteDLL;
namespace SimpleScript
{
public static class Generator
{
public static Document Generate(Data server)
{
"+script+ @"
Block[] blocks = {
new Block(""head"", head),
new Block(""body"", body),
};
return new Document(blocks);
}
}
}
";
Dictionary<string, string> providerOptions = new Dictionary<string, string>
{
{"CompilerVersion", "v4.0"}
};
CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);
CompilerParameters compilerParams = new CompilerParameters
{
GenerateInMemory = true,
GenerateExecutable = false,
ReferencedAssemblies = {
"System.dll",
"System.Core.dll",
"MSiteDLL.dll",
}
};
CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source);
if (results.Errors.Count != 0)
{
string output = "";
foreach (CompilerError y in results.Errors)
{
output += y.ErrorText + Environment.NewLine;
}
throw new Exception("Compile failed:" + output);
}
object o = results.CompiledAssembly.CreateInstance("SimpleScript.Generator");
MethodInfo mi = o.GetType().GetMethod("Generate");
Data[] parametersArray = new Data[] { server };
Document x = (Document)mi.Invoke(o, parametersArray);
return x;
:
そして呼び出すためにそれらを使用します。 – Mat
私は静的keywrodを削除し、それは働いた。 –
ありがとうございます。 :D –