У меня очень странная проблема. В настоящее время я переношу Windows Universal App (Win 8.1 + WinPhone 8.1) с Prism на решение CrossPlattform с MvvmCross. Во-первых, большое спасибо за всю работу с MvvmCross - это потрясающе.Активатор с MvvmCross и PCL
Моя проблема теперь с классом System.Activator
. Я использовал this approach для моей проверки в моем универсальном приложении, и я попытался его портировать. Теперь все компилируется отлично, но во время выполнения генерируется исключение с нулевым значением. Я понял, что это Acitivator, который является нулевым. При попытке доступа к нему в Immediate окнах говорит:
error CS0103: The name 'Activiator' does not exist in the current context
код выполняется в каждой модели и реализован в конструктор базового класса:
protected ModelBase()
{
foreach (var property in this.GetType().GetRuntimeProperties())
{
var type = typeof(Property<>).MakeGenericType(property.PropertyType);
var prop = (IProperty)Activator.CreateInstance(type);
this.Properties.Add(property.Name, prop);
prop.ValueChanged += (s, e) =>
{
RaisePropertyChanged(property.Name);
Validate();
};
}
}
Любые идеи?
'Активатор' ошибочно написано в сообщении об ошибке, но я предполагаю, что это опечатка, когда вы ввели свой вопрос? :-) –
MvvmCross сам использует активатор в порядке - например. https://github.com/MvvmCross/MvvmCross/blob/c306ba37afd9024f68b7a4f1fedcaf4cf7d01b8d/CrossCore/Cirrious.CrossCore/Platform/MvxBootstrapRunner.cs#L32 и https://github.com/MvvmCross/MvvmCross/blob/c306ba37afd9024f68b7a4f1fedcaf4cf7d01b8d/Cirrious/Cirrious. MvvmCrossBinding/Binders/MvxNamedInstanceRegistryFiller.cs # L90 и ... – Stuart