Skip to content

Commit

Permalink
Update JSCallResultTypeHelper.cs (#25628)
Browse files Browse the repository at this point in the history
* Update JSCallResultTypeHelper.cs and PublicAPI.Unshipped.txt

* CR feedback.

* Removed exception message
  • Loading branch information
MackinnonBuck authored Sep 9, 2020
1 parent 43ef580 commit 8f46188
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions src/Shared/JSInterop/JSCallResultTypeHelper.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.Reflection;

namespace Microsoft.JSInterop
{
internal static class JSCallResultTypeHelper
{
// We avoid using Assembly.GetExecutingAssembly() because this is shared code.
private static readonly Assembly _currentAssembly = typeof(JSCallResultType).Assembly;

public static JSCallResultType FromGeneric<TResult>()
=> typeof(TResult) == typeof(IJSObjectReference)
|| typeof(TResult) == typeof(IJSInProcessObjectReference)
|| typeof(TResult) == typeof(IJSUnmarshalledObjectReference) ?
JSCallResultType.JSObjectReference :
JSCallResultType.Default;
{
if (typeof(TResult).Assembly == _currentAssembly
&& (typeof(TResult) == typeof(IJSObjectReference)
|| typeof(TResult) == typeof(IJSInProcessObjectReference)
|| typeof(TResult) == typeof(IJSUnmarshalledObjectReference)))
{
return JSCallResultType.JSObjectReference;
}
else
{
return JSCallResultType.Default;
}
}
}
}

0 comments on commit 8f46188

Please sign in to comment.