मैं एमईएफ एक्सटेंशन और एमवीवीएम पैटर्न के साथ प्रिज्म 4 का उपयोग कर रहा हूं। एक मॉड्यूल में प्रारंभ के दौरान मैं RegisterViewWithRegion (RegionNames.MyRegion, typeof (MyView)) जो काम करता है पूरी तरह से जब दृश्य इस तरह का निर्माण किया है कहते हैं:PRISM 4 - RegisterViewWithRegion और कस्टम निर्यात गुण
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class MyView : UserControl
{
public MyView()
{
....
दृश्य पंजीकृत हो जाता है और सब कुछ ठीक है। जैसे ही मैं निर्यात को एक कस्टम निर्यात विशेषता में बदलता हूं, दृश्य अब और नहीं पाया जा सकता है, हालांकि यह अभी भी कंटेनर में है। यह कस्टम निर्यात गुण स्टॉक व्यापारी आरआई से लिया जाता है:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
[MetadataAttribute]
public class ViewExportAttribute : ExportAttribute, IViewRegionRegistration
{
public ViewExportAttribute()
: base(typeof(object))
{ }
public ViewExportAttribute(string viewName)
: base(viewName, typeof(object))
{
ViewName = viewName;
}
public string RegionName { get; set; }
public string ViewName { get; set; }
}
और इंटरफ़ेस
public interface IViewRegionRegistration
{
string RegionName { get; }
string ViewName { get; }
}
है बदल रहा है जब RegisterViewWithRegion बुला निर्यात
[ViewExport(ViewName = "MyView", RegionName = RegionNames.MyRegion)]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class MyView : UserControl
{
public MyView()
{
....
करने की विशेषता यह एक त्रुटि फेंकता तक : MyView टाइप करने का प्रयास करते समय सक्रियण त्रुटि आई, "
कोई सलाह? मैं समाधान के बिना पूरे दिन कोड के इस हिस्से को देख रहा था।
बाद में उस रात ... मुझे अंत में पता चला कि कस्टम निर्यात विशेषता में इस हिस्से के साथ कुछ करना है: ** आधार (टाइपऑफ (ऑब्जेक्ट)) ** - लेकिन अभी भी रजिस्टरव्यूविथरियन को हल करने का तरीका नहीं है समस्या ... – okieh