İki meclis ile bir çözüm buldum, bunlardan birine Domain denir ve bir Kitap sınıfı ve bir Yazar sınıfı içerir.Meta veri dosyası 'Domain.dll' CSharpCodeProvider referans projesini kullanırken bulunamadı
Kitap sınıfından miras alan bir sınıfı dinamik olarak oluşturmak istiyorum. İşte benim kod:
aşağıdaki hatayı alıyorum Ancakpublic Book CreateBookProxy(Book book)
{
CSharpCodeProvider cscp = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll", "Domain.dll" }, "Proxies.dll", false);
parameters.GenerateExecutable = false;
var compileUnit = new CodeCompileUnit();
var ns = new CodeNamespace("Proxies");
compileUnit.Namespaces.Add(ns);
ns.Imports.Add(new CodeNamespaceImport("System"));
ns.Imports.Add(new CodeNamespaceImport("Domain"));
var classType = new CodeTypeDeclaration("BookProxy");
classType.Attributes = MemberAttributes.Public;
classType.BaseTypes.Add(new CodeTypeReference(typeof(Book)));
ns.Types.Add(classType);
var results = cscp.CompileAssemblyFromDom(parameters, compileUnit);
List<string> errors = new List<string>();
errors.AddRange(results.Errors.Cast<CompilerError>().Select(e => e.ErrorText));
return Activator.CreateInstance(Type.GetType("Proxies.BookProxy, Proxies")) as Book;
}
: Çalışma zamanında bin klasöründe var bu yüzden
Metadata file 'Domain.dll' could not be found
Domain.dll benim başlangıç yukarı projede başvurulmaktadır.
İlginçtir Assembly.Load ("Domain.dll"); FileNotFoundException
Bu sorunu nasıl çözebilirim?
nerede DLL nedir? – SLaks
Çözümün bir parçasıdır ve çalışma zamanında bin klasöründe bulunur. – Liath