2

EF モデルを持つアセンブリから csdl、ssdl、および msl 仕様を取得したいと考えています。

リフレクションの使用:

//loading assembly
var assem = Assembly.LoadFile(assemblyWithEF.dll);
//get model
var model = assem.GetExportedTypes().Where(t => t.BaseType.Name == ObjectContext").First();

//get specification
var csdlStream = assem.GetManifestResourceStream("Model1.csdl");
var mslStream = assem.GetManifestResourceStream("Model1.msl");
var ssdlStream = assem.GetManifestResourceStream("Model1.ssdl");

var csdl = XElement.Load(csdlStream);
var msl = XElement.Load(mslStream);
var ssdl = XElement.Load(ssdlStream)

問題は、これらの仕様を取得するために必要な EDMX ファイルの名前をプログラムで取得するにはどうすればよいかということです。この場合は「Model1」です。

4

1 に答える 1

1

csdl、ssdl、および msl ファイルはリソースとしてアセンブリに埋め込まれているため、 Assembly.GetManifestResourceNames メソッドを使用してそれらの名前にアクセスできます。

于 2013-03-29T23:17:19.003 に答える