अन्य विकल्प अन्य असेंबली को एंबेडेड रिसोर्स के रूप में एम्बेड करना है। फिर ऐप डोमेन असेंबली रिसोलव को संभालें, यहां से आप संसाधन से असेंबली पढ़ सकते हैं और इसे रनटाइम में लोड कर सकते हैं। निम्नलिखित की तरह कुछ:
public class HookResolver
{
Dictionary<string, Assembly> _loaded;
public HookResolver()
{
_loaded = new Dictionary<string, Assembly>(StringComparer.OrdinalIgnoreCase);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string name = args.Name.Split(',')[0];
Assembly asm;
lock (_loaded)
{
if (!_loaded.TryGetValue(name, out asm))
{
using (Stream io = this.GetType().Assembly.GetManifestResourceStream(name))
{
byte[] bytes = new BinaryReader(io).ReadBytes((int)io.Length);
asm = Assembly.Load(bytes);
_loaded.Add(name, asm);
}
}
}
return asm;
}
}
स्रोत
2009-09-21 13:26:12
ब्लॉगपोस्ट लिंक टूट गया है । –
जहां तक मैं कह सकता हूं, al.exe का उपयोग सैटेलाइट असेंबली बनाने के लिए किया जा सकता है, लेकिन मुझे नहीं लगता कि यह एक ही असेंबली में कई संस्कृति संसाधनों को विलय कर सकता है, जो सवाल पूछता है। –