Various refactorings to support ItemFilterPreview
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
<Application x:Class="Filtration.ItemFilterPreview.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:Filtration.ItemFilterPreview"
|
||||
StartupUri="MainWindow.xaml">
|
||||
Startup="Application_Startup">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
|
||||
@@ -1,8 +1,24 @@
|
||||
using System.Windows;
|
||||
using Castle.Facilities.TypedFactory;
|
||||
using Castle.Windsor;
|
||||
using Castle.Windsor.Installer;
|
||||
using Filtration.ItemFilterPreview.Views;
|
||||
|
||||
namespace Filtration.ItemFilterPreview
|
||||
{
|
||||
public partial class App : Application
|
||||
{
|
||||
private IWindsorContainer _container;
|
||||
|
||||
private void Application_Startup(object sender, StartupEventArgs e)
|
||||
{
|
||||
_container = new WindsorContainer();
|
||||
|
||||
_container.AddFacility<TypedFactoryFacility>();
|
||||
_container.Install(FromAssembly.InThisApplication());
|
||||
|
||||
var mainWindow = _container.Resolve<IMainWindow>();
|
||||
mainWindow.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,15 +37,35 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Castle.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Castle.Core.3.3.0\lib\net45\Castle.Core.dll</HintPath>
|
||||
<HintPath>..\packages\Castle.Core.3.3.3\lib\net45\Castle.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Castle.Windsor, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Castle.Windsor.3.3.0\lib\net45\Castle.Windsor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="GalaSoft.MvvmLight, Version=5.2.0.37222, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.2.0.0\lib\net45\GalaSoft.MvvmLight.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="GalaSoft.MvvmLight.Extras, Version=5.2.0.37222, Culture=neutral, PublicKeyToken=669f0b5e8f868abf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.2.0.0\lib\net45\GalaSoft.MvvmLight.Extras.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="GalaSoft.MvvmLight.Platform, Version=5.2.0.37226, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.2.0.0\lib\net45\GalaSoft.MvvmLight.Platform.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MvvmLightLibs.5.2.0.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Core" />
|
||||
@@ -64,15 +84,34 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Model\FilteredItem.cs" />
|
||||
<Compile Include="Model\Item.cs" />
|
||||
<Compile Include="Model\ItemCollection.cs" />
|
||||
<Compile Include="Services\BlockItemMatcher.cs" />
|
||||
<Compile Include="Services\ItemFilterProcessor.cs" />
|
||||
<Compile Include="UserControls\DesignTime\DesignTimeItemControl.cs" />
|
||||
<Compile Include="UserControls\ItemControl.xaml.cs">
|
||||
<DependentUpon>ItemControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\ItemSocketsControl.xaml.cs">
|
||||
<DependentUpon>ItemSocketsControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ViewModels\LootExplosionViewModel.cs" />
|
||||
<Compile Include="ViewModels\MainWindowViewModel.cs" />
|
||||
<Compile Include="Views\LootExplosionView.xaml.cs">
|
||||
<DependentUpon>LootExplosionView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WindsorInstallers\ViewModelsInstaller.cs" />
|
||||
<Compile Include="WindsorInstallers\ViewsInstaller.cs" />
|
||||
<Compile Include="WindsorInstallers\ServicesInstaller.cs" />
|
||||
<Page Include="MainWindow.xaml">
|
||||
<Page Include="UserControls\ItemControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LootExplosionView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
@@ -80,7 +119,7 @@
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainWindow.xaml.cs">
|
||||
<Compile Include="Views\MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
@@ -113,11 +152,16 @@
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="Properties\" />
|
||||
<Resource Include="Resources\Fontin-SmallCaps.ttf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Filtration.Common\Filtration.Common.csproj">
|
||||
<Project>{8cb44f28-2956-4c2a-9314-72727262edd4}</Project>
|
||||
<Name>Filtration.Common</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Filtration.ObjectModel\Filtration.ObjectModel.csproj">
|
||||
<Project>{4aac3beb-1dc1-483e-9d11-0e9334e80227}</Project>
|
||||
<Name>Filtration.ObjectModel</Name>
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<Window x:Class="Filtration.ItemFilterPreview.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:Filtration.ItemFilterPreview"
|
||||
xmlns:userControls="clr-namespace:Filtration.ItemFilterPreview.UserControls"
|
||||
mc:Ignorable="d"
|
||||
Title="MainWindow" Height="350" Width="525">
|
||||
<Grid>
|
||||
<Grid Background="Black">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<userControls:ItemSocketsControl />
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
45
Filtration.ItemFilterPreview/Model/FilteredItem.cs
Normal file
45
Filtration.ItemFilterPreview/Model/FilteredItem.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.Windows.Media;
|
||||
using Filtration.ObjectModel;
|
||||
using Filtration.ObjectModel.BlockItemTypes;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
|
||||
namespace Filtration.ItemFilterPreview.Model
|
||||
{
|
||||
public interface IFilteredItem
|
||||
{
|
||||
IItem Item { get; }
|
||||
IItemFilterBlock ItemFilterBlock { get; }
|
||||
BlockAction BlockAction { get; }
|
||||
Color BackgroundColor { get; }
|
||||
Color BorderColor { get; }
|
||||
Color TextColor { get; }
|
||||
}
|
||||
|
||||
public class FilteredItem : IFilteredItem
|
||||
{
|
||||
public FilteredItem(IItem item, IItemFilterBlock itemFilterBlock)
|
||||
{
|
||||
Item = item;
|
||||
ItemFilterBlock = itemFilterBlock;
|
||||
}
|
||||
|
||||
public IItem Item { get; private set; }
|
||||
public IItemFilterBlock ItemFilterBlock { get; private set; }
|
||||
|
||||
public BlockAction BlockAction => ItemFilterBlock?.Action ?? BlockAction.Show;
|
||||
public Color BackgroundColor => ItemFilterBlock.HasBlockItemOfType<BackgroundColorBlockItem>() ? ItemFilterBlock.DisplayBackgroundColor : new Color { A = 255, R = 0, G = 0, B = 0 };
|
||||
public Color BorderColor => ItemFilterBlock.HasBlockItemOfType<BorderColorBlockItem>() ? ItemFilterBlock.DisplayBorderColor : new Color { A = 255, R = 0, G = 0, B = 0 };
|
||||
public Color TextColor
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ItemFilterBlock.HasBlockItemOfType<TextColorBlockItem>())
|
||||
{
|
||||
return ItemFilterBlock.DisplayTextColor;
|
||||
}
|
||||
|
||||
return Item.DefaultTextColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Media;
|
||||
using System.Xml.Serialization;
|
||||
using Filtration.ObjectModel;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
using Filtration.ObjectModel.Extensions;
|
||||
|
||||
namespace Filtration.ItemFilterPreview.Model
|
||||
{
|
||||
@@ -21,8 +24,10 @@ namespace Filtration.ItemFilterPreview.Model
|
||||
int LinkedSockets { get; }
|
||||
IEnumerable<SocketGroup> LinkedSocketGroups { get; }
|
||||
List<SocketGroup> SocketGroups { get; set; }
|
||||
Color DefaultTextColor { get; }
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class Item : IItem
|
||||
{
|
||||
private List<SocketGroup> _socketGroups;
|
||||
@@ -35,9 +40,13 @@ namespace Filtration.ItemFilterPreview.Model
|
||||
public int Width { get; set; }
|
||||
public int Quality { get; set; }
|
||||
public ItemRarity ItemRarity { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public int Sockets { get; private set; }
|
||||
[XmlIgnore]
|
||||
public int LinkedSockets { get; private set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public IEnumerable<SocketGroup> LinkedSocketGroups
|
||||
{
|
||||
get { return SocketGroups.Where(s => s.Linked); }
|
||||
@@ -76,5 +85,7 @@ namespace Filtration.ItemFilterPreview.Model
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public Color DefaultTextColor => ItemRarity.DefaultRarityTextColor();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Filtration.ItemFilterPreview.Model
|
||||
{
|
||||
class FilteredItemDictionary : Dictionary<Item, bool>
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
BIN
Filtration.ItemFilterPreview/Resources/Fontin-SmallCaps.ttf
Normal file
BIN
Filtration.ItemFilterPreview/Resources/Fontin-SmallCaps.ttf
Normal file
Binary file not shown.
@@ -8,7 +8,7 @@ namespace Filtration.ItemFilterPreview.Services
|
||||
{
|
||||
internal interface IItemFilterProcessor
|
||||
{
|
||||
IReadOnlyDictionary<IItem, IItemFilterBlock> ProcessItemsAgainstItemFilterScript(IItemFilterScript itemFilterScript, IEnumerable<IItem> items);
|
||||
List<IFilteredItem> ProcessItemsAgainstItemFilterScript(IItemFilterScript itemFilterScript, IEnumerable<IItem> items);
|
||||
}
|
||||
|
||||
internal class ItemFilterProcessor : IItemFilterProcessor
|
||||
@@ -20,11 +20,11 @@ namespace Filtration.ItemFilterPreview.Services
|
||||
_blockItemMatcher = blockItemMatcher;
|
||||
}
|
||||
|
||||
public IReadOnlyDictionary<IItem, IItemFilterBlock> ProcessItemsAgainstItemFilterScript(IItemFilterScript itemFilterScript, IEnumerable<IItem> items)
|
||||
public List<IFilteredItem> ProcessItemsAgainstItemFilterScript(IItemFilterScript itemFilterScript, IEnumerable<IItem> items)
|
||||
{
|
||||
var overallsw = Stopwatch.StartNew();
|
||||
|
||||
var matchedItemBlockPairs = new Dictionary<IItem, IItemFilterBlock>();
|
||||
|
||||
var filteredItems = new List<IFilteredItem>();
|
||||
|
||||
var sw = Stopwatch.StartNew();
|
||||
foreach (var item in items)
|
||||
@@ -32,10 +32,10 @@ namespace Filtration.ItemFilterPreview.Services
|
||||
sw.Restart();
|
||||
|
||||
var matchedBlock = itemFilterScript.ItemFilterBlocks
|
||||
.Where(b => !(b is ItemFilterSection))
|
||||
.FirstOrDefault(block => _blockItemMatcher.ItemBlockMatch(block, item));
|
||||
.Where(b => !(b is ItemFilterSection))
|
||||
.FirstOrDefault(block => _blockItemMatcher.ItemBlockMatch(block, item));
|
||||
|
||||
matchedItemBlockPairs.Add(item, matchedBlock);
|
||||
filteredItems.Add(new FilteredItem(item, matchedBlock));
|
||||
|
||||
Debug.WriteLine("Processed Item in {0}ms", sw.ElapsedMilliseconds);
|
||||
}
|
||||
@@ -43,7 +43,7 @@ namespace Filtration.ItemFilterPreview.Services
|
||||
|
||||
overallsw.Stop();
|
||||
Debug.WriteLine("Total processing time: {0}ms", overallsw.ElapsedMilliseconds);
|
||||
return matchedItemBlockPairs;
|
||||
return filteredItems;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace Filtration.ItemFilterPreview.UserControls.DesignTime
|
||||
{
|
||||
public class DesignTimeItemControl
|
||||
{
|
||||
public Color BackgroundColor => Colors.Bisque;
|
||||
public Color TextColor => Colors.Maroon;
|
||||
public Color BorderColor => Colors.CornflowerBlue;
|
||||
public int FontSize => 15;
|
||||
}
|
||||
}
|
||||
42
Filtration.ItemFilterPreview/UserControls/ItemControl.xaml
Normal file
42
Filtration.ItemFilterPreview/UserControls/ItemControl.xaml
Normal file
@@ -0,0 +1,42 @@
|
||||
<UserControl x:Class="Filtration.ItemFilterPreview.UserControls.ItemControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:designTime="clr-namespace:Filtration.ItemFilterPreview.UserControls.DesignTime"
|
||||
xmlns:converters="clr-namespace:Filtration.Common.Converters;assembly=Filtration.Common"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance Type=designTime:DesignTimeItemControl, IsDesignTimeCreatable=True}"
|
||||
d:DesignHeight="35" d:DesignWidth="170">
|
||||
<UserControl.Resources>
|
||||
<converters:ColorToSolidColorBrushConverter x:Key="ColorToSolidColorBrushConverter" />
|
||||
<Style x:Key="PathOfExileFont">
|
||||
<Setter Property="TextElement.FontFamily" Value="pack://application:,,,/resources/#Fontin SmallCaps" />
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Grid.Row="1" Grid.Column="1" Margin="3" Padding="4,0,4,0" BorderThickness="1">
|
||||
<Border.Background>
|
||||
<SolidColorBrush Color="{Binding BackgroundColor}" />
|
||||
</Border.Background>
|
||||
<Border.BorderBrush>
|
||||
<SolidColorBrush Color="{Binding BorderColor}" />
|
||||
</Border.BorderBrush>
|
||||
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Item Preview" Style="{StaticResource PathOfExileFont}" FontSize="{Binding FontSize}">
|
||||
<TextBlock.Foreground>
|
||||
<SolidColorBrush Color="{Binding TextColor}" />
|
||||
</TextBlock.Foreground>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace Filtration.ItemFilterPreview.ViewModels
|
||||
{
|
||||
internal class LootExplosionViewModel
|
||||
{
|
||||
public LootExplosionViewModel()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
13
Filtration.ItemFilterPreview/Views/LootExplosionView.xaml
Normal file
13
Filtration.ItemFilterPreview/Views/LootExplosionView.xaml
Normal file
@@ -0,0 +1,13 @@
|
||||
<UserControl x:Class="Filtration.ItemFilterPreview.Views.LootExplosionView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:Filtration.ItemFilterPreview.Views"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
|
||||
<Grid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -13,14 +13,14 @@ using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Filtration.ItemFilterPreview
|
||||
namespace Filtration.ItemFilterPreview.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// Interaction logic for LootExplosionView.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
public partial class LootExplosionView : UserControl
|
||||
{
|
||||
public MainWindow()
|
||||
public LootExplosionView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using Castle.MicroKernel.Registration;
|
||||
using Castle.MicroKernel.SubSystems.Configuration;
|
||||
using Castle.Windsor;
|
||||
using Filtration.ItemFilterPreview.ViewModels;
|
||||
|
||||
namespace Filtration.ItemFilterPreview.WindsorInstallers
|
||||
{
|
||||
public class ViewModelsInstaller : IWindsorInstaller
|
||||
{
|
||||
public void Install(IWindsorContainer container, IConfigurationStore store)
|
||||
{
|
||||
container.Register(
|
||||
Component.For<IMainWindowViewModel>()
|
||||
.ImplementedBy<MainWindowViewModel>()
|
||||
.LifeStyle.Singleton);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using Castle.MicroKernel.Registration;
|
||||
using Castle.MicroKernel.SubSystems.Configuration;
|
||||
using Castle.Windsor;
|
||||
using Filtration.ItemFilterPreview.Views;
|
||||
|
||||
namespace Filtration.ItemFilterPreview.WindsorInstallers
|
||||
{
|
||||
public class ViewsInstaller : IWindsorInstaller
|
||||
{
|
||||
public void Install(IWindsorContainer container, IConfigurationStore store)
|
||||
{
|
||||
container.Register(
|
||||
Component.For<IMainWindow>()
|
||||
.ImplementedBy<MainWindow>()
|
||||
.LifeStyle.Singleton);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Castle.Core" version="3.3.0" targetFramework="net461" />
|
||||
<package id="Castle.Core" version="3.3.3" targetFramework="net461" />
|
||||
<package id="Castle.Windsor" version="3.3.0" targetFramework="net461" />
|
||||
<package id="CommonServiceLocator" version="1.3" targetFramework="net461" />
|
||||
<package id="MvvmLightLibs" version="5.2.0.0" targetFramework="net461" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user