Многократное управление навигацией через внедрение зависимости

Я столкнулся с этим с учетной записью bitbucket, где я случайно сохранил ginormous * .jpa резервные копии моего сайта.

git filter-branch --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch MY-BIG-DIRECTORY-OR-FILE' --tag-name-filter cat -- --all

Переместить MY-BIG-DIRECTORY с соответствующей папкой, чтобы полностью переписать вашу историю (, включая теги ).

Источник

: http://naleid.com/blog/2012/01/17/finding-and-purging-big-files-from-git-history

1
задан MickyD 22 March 2019 в 05:32
поделиться

1 ответ

Вы можете определить контейнер в CustomNavigationPage и использовать его в каждом экземпляре страницы навигации.

public class CustomNavigationPage : NavigationPage
{
   public static IContainer Container;

   public CustomNavigationPage()
   {
       Locator locator = new Locator();
       locator.RegisterTypes();
       Container = locator.Container();
   }
}

Это фиктивный код, о котором я упоминал.

Вы создаете настраиваемую страницу навигации. Так что вы можете использовать это для навигации по своим страницам, например:

CustomNavigationPage.PushASync(new TestPage(Container.Resolve<WardListPage>())):

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

Для повышения производительности вы можете зарегистрировать свои зависимости с одноэлементным шаблоном. Когда приложение запустится, зависимости будут зарегистрированы. После того, как вы используете эту зарегистрированную зависимость.

Есть улучшение: вы определяете статический локатор с одноэлементным шаблоном, который регистрирует зависимости в app.cs

public sealed class Locator
    {
    private static Locator locator = null;
    private static readonly object padlock = new object();

    Locator()
    {
      //your registries
    }

    public static Locator Locator
    {
    get
    {
    lock (padlock)
    {
    if (locator == null)
    {
    locator = new Locator();
    }
    return locator;
    }
    }
    }
    }

И в ваших app.cs:

 public App()
    {
        InitializeComponent();              
        Locator locator = new Locator();
        Container = locator.Container;
        .
        .
    }

    public static IContainer Container;
[1111 ] Таким образом, вы только один раз регистрируете свои зависимости. Там нет дублирования кода. Будет использован только один экземпляр.

0
ответ дан Batuhan 22 March 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: