Browse Source

Make BindingExpression and ExpressionObserver internal.

pull/10003/head
Steven Kirk 4 years ago
parent
commit
7788a29a96
  1. 3
      src/Avalonia.Base/Avalonia.Base.csproj
  2. 2
      src/Avalonia.Base/Data/Core/BindingExpression.cs
  3. 2
      src/Avalonia.Base/Data/Core/ExpressionObserver.cs
  4. 2
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindingExtension.cs
  5. 1
      src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
  6. 2
      src/Markup/Avalonia.Markup/Data/Binding.cs
  7. 12
      src/Markup/Avalonia.Markup/Data/BindingBase.cs
  8. 2
      src/Markup/Avalonia.Markup/Markup/Parsers/ExpressionObserverBuilder.cs

3
src/Avalonia.Base/Avalonia.Base.csproj

@ -47,6 +47,9 @@
<InternalsVisibleTo Include="Avalonia.DesignerSupport, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.DesignerSupport, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Direct2D1.RenderTests, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.Direct2D1.RenderTests, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.LeakTests, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.LeakTests, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Markup, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Markup.Xaml, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Markup.UnitTests, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Markup.Xaml.UnitTests, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.Markup.Xaml.UnitTests, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Skia.RenderTests, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.Skia.RenderTests, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Skia.UnitTests, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.Skia.UnitTests, PublicKey=$(AvaloniaPublicKey)" />

2
src/Avalonia.Base/Data/Core/BindingExpression.cs

@ -13,7 +13,7 @@ namespace Avalonia.Data.Core
/// that are sent and received. /// that are sent and received.
/// </summary> /// </summary>
[RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)] [RequiresUnreferencedCode(TrimmingMessages.TypeConvertionRequiresUnreferencedCodeMessage)]
public class BindingExpression : LightweightObservableBase<object?>, IAvaloniaSubject<object?>, IDescription internal class BindingExpression : LightweightObservableBase<object?>, IAvaloniaSubject<object?>, IDescription
{ {
private readonly ExpressionObserver _inner; private readonly ExpressionObserver _inner;
private readonly Type _targetType; private readonly Type _targetType;

2
src/Avalonia.Base/Data/Core/ExpressionObserver.cs

@ -11,7 +11,7 @@ namespace Avalonia.Data.Core
/// <summary> /// <summary>
/// Observes and sets the value of an expression on an object. /// Observes and sets the value of an expression on an object.
/// </summary> /// </summary>
public class ExpressionObserver : LightweightObservableBase<object?>, IDescription internal class ExpressionObserver : LightweightObservableBase<object?>, IDescription
{ {
/// <summary> /// <summary>
/// An ordered collection of property accessor plugins that can be used to customize /// An ordered collection of property accessor plugins that can be used to customize

2
src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindingExtension.cs

@ -35,7 +35,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions
}; };
} }
protected override ExpressionObserver CreateExpressionObserver(AvaloniaObject target, AvaloniaProperty targetProperty, object anchor, bool enableDataValidation) private protected override ExpressionObserver CreateExpressionObserver(AvaloniaObject target, AvaloniaProperty targetProperty, object anchor, bool enableDataValidation)
{ {
if (Source != null) if (Source != null)
{ {

1
src/Markup/Avalonia.Markup/Avalonia.Markup.csproj

@ -19,6 +19,7 @@
<Import Project="..\..\..\build\TrimmingEnable.props" /> <Import Project="..\..\..\build\TrimmingEnable.props" />
<ItemGroup Label="InternalsVisibleTo"> <ItemGroup Label="InternalsVisibleTo">
<InternalsVisibleTo Include="Avalonia.Markup.Xaml, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Markup.UnitTests, PublicKey=$(AvaloniaPublicKey)" /> <InternalsVisibleTo Include="Avalonia.Markup.UnitTests, PublicKey=$(AvaloniaPublicKey)" />
</ItemGroup> </ItemGroup>
</Project> </Project>

2
src/Markup/Avalonia.Markup/Data/Binding.cs

@ -56,7 +56,7 @@ namespace Avalonia.Data
/// </summary> /// </summary>
public Func<string, string, Type>? TypeResolver { get; set; } public Func<string, string, Type>? TypeResolver { get; set; }
protected override ExpressionObserver CreateExpressionObserver(AvaloniaObject target, AvaloniaProperty? targetProperty, object? anchor, bool enableDataValidation) private protected override ExpressionObserver CreateExpressionObserver(AvaloniaObject target, AvaloniaProperty? targetProperty, object? anchor, bool enableDataValidation)
{ {
_ = target ?? throw new ArgumentNullException(nameof(target)); _ = target ?? throw new ArgumentNullException(nameof(target));

12
src/Markup/Avalonia.Markup/Data/BindingBase.cs

@ -70,7 +70,7 @@ namespace Avalonia.Data
public WeakReference<INameScope>? NameScope { get; set; } public WeakReference<INameScope>? NameScope { get; set; }
protected abstract ExpressionObserver CreateExpressionObserver( private protected abstract ExpressionObserver CreateExpressionObserver(
AvaloniaObject target, AvaloniaObject target,
AvaloniaProperty? targetProperty, AvaloniaProperty? targetProperty,
object? anchor, object? anchor,
@ -127,7 +127,7 @@ namespace Avalonia.Data
return new InstancedBinding(subject, Mode, Priority); return new InstancedBinding(subject, Mode, Priority);
} }
protected ExpressionObserver CreateDataContextObserver( private protected ExpressionObserver CreateDataContextObserver(
AvaloniaObject target, AvaloniaObject target,
ExpressionNode node, ExpressionNode node,
bool targetIsDataContext, bool targetIsDataContext,
@ -162,7 +162,7 @@ namespace Avalonia.Data
} }
} }
protected ExpressionObserver CreateElementObserver( private protected ExpressionObserver CreateElementObserver(
StyledElement target, StyledElement target,
string elementName, string elementName,
ExpressionNode node) ExpressionNode node)
@ -178,7 +178,7 @@ namespace Avalonia.Data
return result; return result;
} }
protected ExpressionObserver CreateFindAncestorObserver( private protected ExpressionObserver CreateFindAncestorObserver(
StyledElement target, StyledElement target,
RelativeSource relativeSource, RelativeSource relativeSource,
ExpressionNode node) ExpressionNode node)
@ -211,7 +211,7 @@ namespace Avalonia.Data
null); null);
} }
protected ExpressionObserver CreateSourceObserver( private protected ExpressionObserver CreateSourceObserver(
object source, object source,
ExpressionNode node) ExpressionNode node)
{ {
@ -220,7 +220,7 @@ namespace Avalonia.Data
return new ExpressionObserver(source, node); return new ExpressionObserver(source, node);
} }
protected ExpressionObserver CreateTemplatedParentObserver( private protected ExpressionObserver CreateTemplatedParentObserver(
AvaloniaObject target, AvaloniaObject target,
ExpressionNode node) ExpressionNode node)
{ {

2
src/Markup/Avalonia.Markup/Markup/Parsers/ExpressionObserverBuilder.cs

@ -6,7 +6,7 @@ using Avalonia.Utilities;
namespace Avalonia.Markup.Parsers namespace Avalonia.Markup.Parsers
{ {
public static class ExpressionObserverBuilder internal static class ExpressionObserverBuilder
{ {
[RequiresUnreferencedCode(TrimmingMessages.ReflectionBindingRequiresUnreferencedCodeMessage)] [RequiresUnreferencedCode(TrimmingMessages.ReflectionBindingRequiresUnreferencedCodeMessage)]
internal static (ExpressionNode Node, SourceMode Mode) Parse(string expression, bool enableValidation = false, Func<string, string, Type>? typeResolver = null, internal static (ExpressionNode Node, SourceMode Mode) Parse(string expression, bool enableValidation = false, Func<string, string, Type>? typeResolver = null,

Loading…
Cancel
Save