it-swarm.com.ru

Xamarin - тип не найден в пространстве имен xmlns clr

Я делаю приложение Xamarin Forms, решение называется RESTTest, мой общий проект называется RestApp.

В моем общем проекте у меня есть папка с именем ViewModels, которая содержит класс с именем MainViewModel.cs

У меня есть страница с именем MainPage.xaml, в которой есть код, называемый MainPage.xaml.cs. В моем XAML я пытаюсь включить мою папку Viewmodels следующим образом:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.Microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:RestApp"
             x:Class="RestApp.MainPage"
             xmlns:ViewModels="clr-namespace:RestApp.ViewModels;Assembly=RestApp">

Но когда я добавляю привязку к моей странице, вот так: 

    <ContentPage.BindingContext>
         <ViewModels:MainViewModel />
    </ContentPage.BindingContext>

Я получаю необработанное исключение:

Type ViewModels:MainViewModel not found in xmlns clr-namespace:RestApp.ViewModels;Assembly=RestApp

Что мне не хватает? 

 enter image description here

5
Barney Chambers

Удаление «; Assembly = RestApp» в пространстве имен и установка поведения компоновщика на «Link SDK Assemblies Only» работали для меня и решили проблему!

1
Jordi Tormo

Обычно это происходит, когда у вас есть оптимизация компоновщика, которая обрезает неиспользуемый код.

Обратите внимание, что десериализация в тип может не обнаруживаться компоновщиком при использовании типа.

В свойствах вашего проекта найдите параметр «Поведение компоновщика» в разделе «Сборка iOS» или «Сборка Android» и установите для него значение «Только ссылки SDK для сборок» или «Не ссылаться». Чтобы изменения вступили в силу, вам нужно будет очистить и перестроить все решение.

1
Sten Petrov