나는 codedom
을 사용하여 .cs 파일을 컴파일하고 invokemember
을 통해 메소드를 추출합니다. 어떻게 그 방법으로 가치를 얻을 수 있습니까? 예를 들면 : 내가코드 결과 결과 함수에서 반환 값 얻기
여기 내 코드
string[] filepath = new string[1];
filepath[0] = @"C:\Users\xxxx\Documents\Visual Studio 2010\Projects\xxx\xx\invokerteks.cs";
CodeDomProvider cpd = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Web.dll");
cp.GenerateExecutable = false;
CompilerResults cr = cpd.CompileAssemblyFromFile(cp, filepath);
if (true == cr.Errors.HasErrors)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (System.CodeDom.Compiler.CompilerError ce in cr.Errors)
{
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
throw new Exception(sb.ToString());
}
Assembly invokerAssm = cr.CompiledAssembly;
Type invokerType = invokerAssm.GetType("dynamic.hello");
object invokerInstance = Activator.CreateInstance(invokerType);
invokerType.InvokeMember("helloworld", BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic, null, invokerInstance, null);
의 방법에서 생성 된 webcontrol를 얻을 싶어 여기에 내 invokerteks.cs
namespace dinamis
{
public class halo
{
private void halodunia()
{
System.Console.WriteLine("Hello World!!");
}
}
}
날를 제공 할 수 있습니다 이 문제에 대한 자습서 링크가 있습니까?
메서드에서 원하는 것을 반환하면 'InvokeMember()'에서 반환됩니다. – svick