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.Direct2D1.RenderTests, 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.Skia.RenderTests, 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.
/// </summary>
[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 Type _targetType;

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

@ -11,7 +11,7 @@ namespace Avalonia.Data.Core
/// <summary>
/// Observes and sets the value of an expression on an object.
/// </summary>
public class ExpressionObserver : LightweightObservableBase<object?>, IDescription
internal class ExpressionObserver : LightweightObservableBase<object?>, IDescription
{
/// <summary>
/// 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)
{

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

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

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

@ -56,7 +56,7 @@ namespace Avalonia.Data
/// </summary>
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));

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

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

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

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

Loading…
Cancel
Save