나는 아래에 보이는 것과 같이 PersonVM
이라는 클래스를 포함하는 DLL을 만들었습니다. 그리고 그 작업 ...런타임에 DLL 어셈블리를 생성하고 변경합니까?
public ActionResult Index()
{
using (CSharpCodeProvider codeProvider = new CSharpCodeProvider())
{
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "Per.dll";
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, "public class PersonVM{ " + "public int id{get;set;}" +
"public string Name{get;set;}" + "public string LName{get;set;}" + " }");
}
Assembly assembly = Assembly.LoadFrom("Per.dll");
var type = assembly.GetType("PersonVM");
var d = type.GetProperties();
object obj = Activator.CreateInstance(type, true);
return View(obj);
}
그러나이 코드는 내 색인 컨트롤러에서 한 번만 작동합니다. 예를 들어 자신이 여기에 내 DLL 클래스를 변경하지 ..
public ActionResult Conf()
{
using (CSharpCodeProvider codeProvider = new CSharpCodeProvider())
{
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "Per.dll";
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, "public class PersonVM{ " + "public int id{get;set;}" +
"public string Name{get;set;}" + "public string LName{get;set;}" + "public string LNamee2 { get; set; }" + "public string L4 { get; set; }" + " }");
}
Assembly assembly = Assembly.LoadFrom("Per.dll");
var type = assembly.GetType("PersonVM");
object obj = Activator.CreateInstance(type, true);
List<ClassInfoVM> model = obj.GetType().GetProperties()
.Select(T => new ClassInfoVM()
{
PropName = T.Name,
TypeOfProp = T.PropertyType.Name
}).ToList();
return View(model);
}
어떤 오류에 대한 어떠한 일이없는 그냥 내 DLL 클래스를 변경하지 않습니다 ... dll을 클래스 PersonVM
는 속성이 모두 포함된다 처음에 설정했습니다. Index
왜 이러한 클래스가 런타임에 빌드되고 있습니까? 귀하의 의견에 –
주셔서 감사합니다. 사실이 클래스를 내 뷰 모델로 사용하고 싶습니다. 뷰 모델과 모델을 동적으로 제공 할 수있게하려는 것입니다. in mvc EntityFramework –