Xamarin создает Visual Studio для решения проблем с чистым пространством имен для Mac - PullRequest
0 голосов
/ 12 марта 2019

Я создал приложение форм Xamarin, используя стандарт .net.Затем я добавил в решение проект стандартной библиотеки .net, который будет включать общие коды, такие как рендеринг, поведение и т. Д. Я включил ссылку на общий проект стандартной библиотеки .net в основной проект форм Xamarin, щелкнув правой кнопкой мыши по зависимостям и меню «Редактировать ссылки».,Наконец, я пытаюсь включить пространство имен файлов рендерера на страницу содержимого основных форм Xamarin, указав строку ниже с помощью Xamarin.Forms;

namespace MyProject.Shared.Renderer
{
    public class ExtendedEntry : Entry
    {
        public static readonly BindableProperty IsBorderErrorVisibleProperty = BindableProperty.Create(nameof(IsBorderErrorVisible), typeof(bool), typeof(ExtendedEntry),
            false, BindingMode.TwoWay);

        public bool IsBorderErrorVisible
        {
            get { return (bool)GetValue(IsBorderErrorVisibleProperty); }
            set { SetValue(IsBorderErrorVisibleProperty, value); }
        }

        public static readonly BindableProperty BorderErrorColorProperty = BindableProperty.Create(nameof(BorderErrorColor), typeof(Color), typeof(ExtendedEntry),
            null, BindingMode.TwoWay);

        public Color BorderErrorColor
        {
            get { return (Color)GetValue(BorderErrorColorProperty); }
            set { SetValue(BorderErrorColorProperty, value); }
        }

        public static readonly BindableProperty ErrorTextProperty = BindableProperty.Create(nameof(ErrorText), typeof(string), typeof(ExtendedEntry), string.Empty,
            BindingMode.TwoWay);

        public string ErrorText
        {
            get { return (string)GetValue(ErrorTextProperty); }
            set { SetValue(ErrorTextProperty, value); }
        }
    }
}
xmlns:controls=“clr-namespace:MyProject.Shared.Renderer:assembly:MyProject.Shared”

Then I reference the control as
<controls:ExtendedEntry />

Но это дает ошибку сборки, которая говорит, что ExtendedEntry не найден всборка MyProject.Shared

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Извините ... Я совершил ошибку ... настоящую ошибку.

Я набрал ":" вместо "=" в атрибуте сборки.

Это должно быть xmlns: controls= «CLR-имена: MyProject.Shared.Renderer: сборка = MyProject.Shared»

0 голосов
/ 12 марта 2019

Ну, на самом деле эта проблема довольно распространенная, что происходит, если ваш проект не скомпилирован должным образом или после компиляции bin и obj отсутствует этот класс, что нормально.

Решение:

  • Удалите все папки bin obj из всех проектов в вашем решении.

  • Теперь индивидуально создайте все свои проекты на основе зависимости, т. Е. Если у вас есть четыре проекта A, B, iOS и Android, а B зависит от A, т. Е. Имеет ссылку на A, тогда вы сначала очистите сборку A, а затем B а затем любой из iOS и Android.

  • Если даже после этого ваша проблема не будет решена, вы можете перезагрузить VS все вместе

Если вы все еще сталкиваетесь с этой проблемой, не стесняйтесь возвращаться.

Удачи

...