मैं अपने ऐप में प्लगइन लोड करने के लिए एमईएफ का उपयोग कर रहा हूं। सबकुछ काम करता है, लेकिन जब मैं अपने ऐप फ़ोल्डर में गिरा दिया जाता हूं तो मैं नए हिस्सों को खोजना चाहता हूं। क्या यह संभव है? DirectoryCatalog में एक बदली हुई घटना है लेकिन मुझे यकीन नहीं है कि यह कैसे काम करता है।एप्लिकेशन चल रहा है, जबकि नए MEF भागों को कैसे खोजें?
यह मेरा कोड अभी है:
public sealed class RevealerFactory
{
private static readonly Lazy<RevealerFactory> lazy =
new Lazy<RevealerFactory>(() => new RevealerFactory());
public static RevealerFactory Instance { get { return lazy.Value; } }
private FileSystemWatcher watcher;
private RevealerFactory()
{
Initialize();
}
[ImportMany(RequiredCreationPolicy = CreationPolicy.Shared)]
private IEnumerable<Lazy<IRevealer, IRevealerCapabilities>> Revealers {
get;
set;
}
public IRevealer GetRevealer(Uri uri)
{
return (from revealer in Revealers
where uri.Host.Equals(revealer.Metadata.Host,
StringComparison.OrdinalIgnoreCase)
&& revealer.Value.IsRevelable(uri)
select revealer.Value).FirstOrDefault();
}
private void Initialize()
{
var catalog = new DirectoryCatalog(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
+ "/SDownloader/Revealers");
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
}
अलावा आप कैसे छाया नकल सक्षम करने के लिए अपने विधानसभाओं – tartakynov
@tartakynov के गर्म स्वैप अनुमति देने के लिए छाया प्रतिलिपि बनाने सक्षम करने के लिए विचार कर सकते हैं? – zionpi
@zionpi इस विषय को देखें http://stackoverflow.com/questions/4595304/change-dll-loaded-with-mef – tartakynov