Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Maupin <ermaup@microsoft.com>2018-01-12 23:07:37 +0300
committerEric Maupin <ermaup@microsoft.com>2018-01-12 23:07:37 +0300
commit28109d00f713df204c6a8624c96b6baca9036386 (patch)
tree00e09a51cbe33da88dde638190737f4368c35fa1 /Xamarin.PropertyEditing.Tests/MockObjectEditor.cs
parent1e695e127b98b47ee4acc3652871a3d7f560be88 (diff)
[Core] Add relevancy to IAssemblyInfo
Diffstat (limited to 'Xamarin.PropertyEditing.Tests/MockObjectEditor.cs')
-rw-r--r--Xamarin.PropertyEditing.Tests/MockObjectEditor.cs14
1 files changed, 11 insertions, 3 deletions
diff --git a/Xamarin.PropertyEditing.Tests/MockObjectEditor.cs b/Xamarin.PropertyEditing.Tests/MockObjectEditor.cs
index 879e340..230e00a 100644
--- a/Xamarin.PropertyEditing.Tests/MockObjectEditor.cs
+++ b/Xamarin.PropertyEditing.Tests/MockObjectEditor.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Reflection;
using System.Threading.Tasks;
using Xamarin.PropertyEditing.Tests.MockControls;
@@ -115,10 +116,17 @@ namespace Xamarin.PropertyEditing.Tests
public Task<IReadOnlyList<ITypeInfo>> GetAssignableTypesAsync (IPropertyInfo property)
{
- if (this.assignableTypes == null || !this.assignableTypes.TryGetValue (property, out IReadOnlyList<ITypeInfo> types))
+ if (this.assignableTypes == null) {
+ return Task.Run<IReadOnlyList<ITypeInfo>> (() => {
+ return AppDomain.CurrentDomain.GetAssemblies().SelectMany (a => a.GetTypes()).AsParallel()
+ .Where (t => property.Type.IsAssignableFrom (t) && t.Namespace != null && !t.IsAbstract && !t.IsInterface && t.IsPublic)
+ .Select (t => new TypeInfo (new AssemblyInfo (t.Assembly.GetName().Name, true), t.Namespace, t.Name))
+ .ToList();
+ });
+ } else if (!this.assignableTypes.TryGetValue (property, out IReadOnlyList<ITypeInfo> types))
return Task.FromResult<IReadOnlyList<ITypeInfo>> (Enumerable.Empty<ITypeInfo>().ToArray());
-
- return Task.FromResult (types);
+ else
+ return Task.FromResult (types);
}
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously